jQuery Events/toggle Status reset

- ,

Heute habe ich  mich intensiv mit der JQuery Funktion “Events/toggle” beschäftigt. Das ganze schien erst ganz einfach denn ich hatte zwei Funktionen welche mir ein JavasScript Event an- und abschalten. Da das ganze aber nicht nur auf einer einfachen Seite war, sondern in Tabs wurde es ein wenig komplizierter. Denn wenn man auf einen anderen Tab springt soll alles verschwinden was der Event ausgelöst hat. Dies war noch ganz einfach, jedoch wenn man auf den Tab zurück geht soll alles wieder wie vorher sein. Die toggle Funktion von jQuery merkt sich jedoch an welcher stelle sie war, was je nach Situation ungewollte Ergebnisse lieferte. Deshalb musste ich das ganze irgendwie zurücksetzen sobald man den Tab verlässt, damit bei der Rückkehr alles reibungslos läuft.

Die jQuery Dokumentation sagt mir, dass ich mit “unbind(‘click’)” den toggle entfernen kann. Wenn ich den toggle dann aber neu hinzufüge ist der Status noch immer der Alte. Nach intensivem debuging fand ich raus, dass das jQuery Objekt einen zusätzlichen Wert “lastToggle” erhält sobald der Toggle Event das erste mal ausgelöst wird. Dieser bleibt auch bei einem “unbind” des toggle Events bestehen. Um dies zu korrigieren, habe ich mir eine kleine Funktion geschrieben:

function resetToggle(selector) {
$(selector).each(function()	{
this.lastToggle = undefined;
});
}
  1. fim sagt:

    fantastiggerisch ! :D

  2. mxm sagt:

    VIELEN DANK :)

  3. felix sagt:

    kann es sein das es lastToggle bei jQuery 1.4 nicht mehr gibt? :(

  4. Mark sagt:

    JA scheint so :(

Hinterlasse eine Antwort

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *

*

Du kannst folgende HTML-Tags benutzen: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>