Comment décharger le script js lors du passage à l'onglet suivant dans jQuery?

StackOverflow https://stackoverflow.com/questions/1211426

  •  06-07-2019
  •  | 
  •  

Question

J'ai un site avec cinq onglets utilisant jquery-ui. Chacun charge un script jQuery individuel. Maintenant, quand j'ai chargé le deuxième onglet et que je vais au troisième onglet, le js du deuxième onglet reste toujours actif et perturbe mes actions dans le troisième espace de tabulation.

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

Était-ce utile?

La solution

Une fois que vous avez chargé un script sur la page, celui-ci reste actif jusqu'à ce que la page soit actualisée. Je ne sais pas à propos du déchargement, mais vous pouvez certainement désactiver les actions d'un script en fonction de sa nature. Pourriez-vous publier un exemple du script à l'origine des problèmes?

EDIT: Par exemple, si vous avez un script dépendant de l'onglet dans lequel vous vous trouvez, vous pouvez conditionner les actions du script avec les onglets situés à un certain index. Une syntaxe de démonstration:

// n'exécutera l'action que 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 " tabsselect " événement à l'élément à onglet et définit la variable à l'onglet actuellement indexé chaque fois qu'un utilisateur modifie un onglet.

Vous pouvez également dissocier des événements si vous avez chargé un script définissant un événement click pour un bouton qui n'existe plus ou que vous utilisez maintenant dans un but différent:

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

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

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top