2010-04-06 3 views
1

Je souhaite désactiver l'animation accordéon pendant le chargement de la page, puis la réactiver une fois la page chargée.Désactivation de l'animation Jquery UI Accordion uniquement pendant le chargement de la page

Fondamentalement, j'ai plusieurs formes à l'intérieur des sections d'accordéon et lorsqu'il est soumis la page et la rechargées obtient section correspondante est rechargé. Mais pendant le rechargement l'animation est déclenchée ce qui a l'air un peu moche. Mais j'aime quand la page n'est pas chargée.

Comment puis-je obtenir cet effet?

Répondre

3

Pour répondre à ma propre question. Ce qui suit a fonctionné. Ce que j'ai trouvé, c'est que lors de la création de l'objet accordéon, vous ne définissez aucune animation en premier. Ensuite, sélectionnez la section que vous voulez afficher au moment du chargement. Dans mon cas, mon contrôleur Kohana récupère ceci à partir d'une variable de session définie par la soumission de formulaire précédente. Il est ensuite passé dans le modèle contenant ce code. Une fois que c'est fait, réglez le paramètre animé à glisser et tout est parti à partir de là.

$(function(){ 
     /* Create the accordion object first */ 
     $("#accordion").accordion({ animated: false, header: "h3", autoHeight: false, clearstyle: true, collapsible: true }) 

     /* get the section to load. This is set by the previous form submission and saved to a session variable. */ 
     var id = <?php echo $sectionId; ?>; 

     /* activate on sectionId=0 causes it to close (which is by design) this gets around it */ 
     if (id != 0) { 
     $("#accordion").accordion("activate", id); 
     } 

     $("#accordion").accordion("option", {animated: "slide" }); 

    }); 
0

Si la page se recharge après une soumission le script JS tout sera rechargé et, par conséquent, une variable contenant tout type de données seront remis à la valeur par défaut. La seule façon que je peux penser que cela pourrait être fait est d'avoir une variable définie par votre langage côté serveur dans le script javascript après avoir reçu une soumission.

Dans JS lorsque vous chargez la page ne

var = false; //false = no open tabs 
$(".selector").accordion({ ..., active: var }); 

Sur présentation PHP faire, en supposant que vous l'utilisez, faites:

$my_tab_number = n; 
var = <php echo $my_tab_number; ?>; 

Ainsi, lorsque la page est rechargée, il sera ouvert dans l'onglet que vous voulez.

Questions connexes