2012-05-14 12 views
14

Mögliche Duplizieren:
jQuery event to trigger action when a div is made visiblejQuery Ereignis - Element sichtbar wurde

Wie kann ich einige meinen Code ausführen, wenn das Element, weicht von Ajax geladen wurde, sichtbar werden ("display" sind Wechsel von "none" zu "block")? Nun, ich brauche ein Ereignis wie

$('#element').live('show', function(){ 
// CODE 
}); 

oder ein Ereignis, dass eine Klasse zum Löschen/beobachten zu Element Hinzufügen

+0

Was meinst du von Ajax geladen? verwendest du einen jquery ajax call? – Liam

+0

Ich füge

...
von $ .ajax() hinzu, es gibt mehrere Funktionen, die je nach Situation die Sichtbarkeit dieses Elements ändern. Ich bin nicht in der Lage, die Funktionen zu ändern, die die Sichtbarkeit des Elements ändern, aber ich brauche um meinen Code auszuführen, wenn das Element sichtbar wird (entfernte Klasse, die addind "display: none" zum Element css) –

+0

Fertig. Verwenden Sie setInterval. Siehe meine Antwort unten. – iambriansreed

Antwort

2

Es gibt nichts jQuery-in gebaut, dass Sie das erreichen ermöglicht. Sie können sich die livequery plugin ansehen. Beispiel:

Wenn ein Element mit ID = "Element" zum DOM hinzugefügt wird, sollte der Rückruf ausgeführt werden.

+3

Die Funktionen '.live()', '.delegate()' und '.on()' würden gerne ein Wort mit dir ... –

+4

Sie möchten vielleicht ein Wort haben, aber das OP nicht. Er muss Ereignisse für dynamisch hinzugefügte Steuerelemente nicht abonnieren. Er möchte ein Ereignis abonnieren, das ausgelöst wird, sobald ein Element zum DOM hinzugefügt wird, das nicht dasselbe ist. –

+3

Ich stimme nicht zu. Mein Verständnis ist, dass er möchte, dass eine Callback-Funktion ausgelöst wird, wenn dynamisch hinzugefügte Elemente sichtbar werden (d. H. Von "display: none" zu "display: block" wechseln), nicht wenn sie dem DOM hinzugefügt werden. –

1

Führen Sie alle 1 Sekunde eine Überprüfung durch. Wenn die #element existiert und sichtbar ist, löschen Sie das Intervall und beenden Sie den Code.

Zwangsläufig haben Sie einige jQuery Event-Callback, die das Element zeigt; Bei diesen Ereignisrückrufen sollten Sie den Ausführungscode "Wenn Element sichtbar ist" platzieren.

+5

es ist zu irrational –

+0

Bitte entpacken Sie das für mich? Irrational? – iambriansreed

+1

Er meint, dass es eine bessere Methode geben sollte, jede Sekunde etwas Brute-Force zu überprüfen. Im Zeitalter der Ereignisse ist das merkwürdig. – Firsh

Verwandte Themen