2009-07-31 5 views
1

J'ai un site avec cinq onglets utilisant jquery-ui. Chacun charge un script jQuery individuel. Maintenant, quand j'ai chargé le second onglet et que je vais au troisième onglet, le js du second onglet reste actif et perturbe mes actions dans le troisième onglet.Comment décharger le script js en allant à l'onglet suivant dans jquery?

Quelqu'un peut-il m'expliquer pourquoi le js du deuxième onglet reste actif quand on passe au troisième onglet et comment je peux éviter un tel comportement?

Répondre

1

Une fois que vous avez chargé un script sur la page, il reste actif jusqu'à ce que la page soit actualisée. Je ne sais pas sur le déchargement, mais vous pouvez certainement désactiver les actions d'un certain script en fonction de ce que c'est. Pourriez-vous poster un exemple du script causant les problèmes? Par exemple, si vous avez un script dépendant de l'onglet dans lequel vous vous trouvez, vous pouvez conditionner les actions dans le script avec les onglets à un certain index. Une syntaxe de démonstration:

// n'exécutera l'action si vous êtes dans l'onglet en cours

if(tabs_ui_index == 0){ 
    //do something 
} 

pour obtenir cette variable (tabs_ui_index) vous pouvez faire quelque chose comme ceci:

$('#mytabs').bind('tabsselect', function(event, ui) { 
    tabs_ui_index = ui.index; 
}); 

Ce code lie un événement "tabsselect" à l'élément qui est tabulé et définit la variable à l'onglet indexé actuellement chaque fois qu'un utilisateur modifie un onglet.

En outre, vous pouvez délier les événements, si vous avez chargé un script qui a établi un événement de clic pour un bouton qui n'existe plus, ou que vous utilisez dans un but différent maintenant:

$("#mybutton").unbind("click"); 

J'espère que cette aide. Faites-moi savoir si vous avez d'autres questions.

+0

Je voudrais publier le script, mais il y a plusieurs scripts qui se référencent les uns aux autres, donc il serait plus logique de publier l'ensemble de l'application afin de comprendre ce que font les scripts. Avez-vous peut-être une solution sur la façon dont je peux poster ces d'une manière compréhensible? – elhombre

+0

dans ce cas, je vais vous donner une réponse plus générale. voir la réponse éditée –

+0

Géré pour résoudre mon problème à ma manière, mais votre explication explique ce que j'ai fait de mal. (J'ai fait l'échec que j'ai chargé dans chaque onglet un fichier js, donc quand je suis revenu au même onglet il chargerait encore le même fichier JS. La sortie semblerait alors dupliquée parce que le JS s'exécute deux fois en arrière-plan) – elhombre

Questions connexes