Frage

Ich habe eine Seite mit fünf Registerkarten mit Jquery-ui. Jeder lädt einen individuellen jQuery-Skript. Nun, wenn ich das zweite Register geladen und gehe auf den dritten Registerkarte js aus dem zweiten Registerkarte bleibt weiterhin aktiv und stört meine Handlungen in dem dritten Registerkarte Raum.

Kann mir jemand erklären, warum die js der zweiten Registerkarte aus noch aktiv bleibt, wenn auf die dritte Registerkarte ändern und wie kann ich ein solches Verhalten vermeiden?

War es hilfreich?

Lösung

Wenn Sie ein Skript auf die Seite geladen haben, bleibt es, bis die Seite aktualisiert aktiv. Ich weiß nicht, über Entladung, aber man kann sicherlich die Aktionen eines bestimmten Skript deaktivieren, je nachdem, was es ist. Könnten Sie ein Beispiel für das Skript schreiben die Probleme verursacht?

EDIT: Zum Beispiel, wenn Sie ein Skript, das auf der Registerkarte Sie in sind abhängig ist, können Sie die Aktionen im Skript Bedingung mit den Registerkarten in einem bestimmten Index zu sein. Eine Demo-Syntax:

// wird nur Aktion ausführen, wenn Sie in der aktuellen Registerkarte sind

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

diese Variable zu erhalten (tabs_ui_index) Sie etwas tun können:

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

bindet Dieser Code ein „tabsselect“ Ereignis an das Element, das Tabbed ist und setzt die Variablen auf die derzeit indiziert Registerkarte jedes Mal, wenn ein Benutzer eine Registerkarte ändert.

Auch Sie können Ereignisse entbinden, wenn Sie ein Skript geladen, die ein Click-Ereignis für eine Schaltfläche festlegen, die nicht mehr existiert, oder dass Sie für einen anderen Zweck verwenden jetzt:

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

Ich hoffe, das hilft. Lassen Sie uns wissen, wenn Sie Fragen haben.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top