Frage

Ich frage mich, wo ich meine jQuery Aktionen für extern geladene Seiten von UI Registerkarten definieren sollte.

So zum Beispiel habe ich eine index.html Seite, darunter 3 Registerkarten bekommt. Onclick jedes Register lädt extern1.html, extern2.html, extern3.html. Diese drei externen Seiten benötigen mehrere jQuery Aktionen (onload-Aktionen, Onclick-Aktionen und mehr).

Wann habe ich all jQuery-Code für die externen Seiten in den Index und ich einen der externen Seiten laden, dieser Code jQuery wird nicht die externe geladene Seite beeinflussen, wenn ich auf einer Registerkarte klicken.

Wenn ich den gesamten Code jQuery setzen für die Außenseiten in die externe Seite selbst wird es Probleme verursachen (glaube ich), weil, wenn ich eine Registerkarte / externe Seite mehrere Male laden wird es jQuery-Code geladen werden immer und immer wieder, rechts ?

Wo muss ich meine jQuery-Code setzen? (Einige Beispiele?)

Vielen Dank!

War es hilfreich?

Lösung

Sie können Ihren Code in Tabula geladen Ereignishandler setzen:

$('.your-tabs-container').tabs({
   load: function(event, ui) { /* your code here */ }
});

oder:

$('.your-tabs-container').bind('tabsload', function(event, ui) {
  /* your code here */
});

In diesen Fällen nach der Dokumentation, können Sie die notwendigen UI abrufen Informationen aus ui Argumente:

ui.tab     // anchor element of the selected (clicked) tab
ui.panel   // element, that contains the selected/clicked tab contents
ui.index   // zero-based index of the selected (clicked) tab

Andere Tipps

setzen Sie Ihre jQuery auf die Mutter html und Verwendung .live() Funktion, um die Ereignisse zu binden Sie wollten. docs hier .

Sie sollten nur gehören die jQuery-Bibliothek einmal! Auf dem Index-Seite. An den Außenseiten, sollten Sie die JavaScript enthalten die für die individuelle externe Seite verwendet:

Index:

  • Neue jQuery-Bibliothek

Externe 1:

  • jQuery-Funktionen relevant für externe Seite 1

Externe 2:

  • jQuery-Funktionen relevant für externe Seite 2

Das ist, wie ich es tun würde: -)

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