Soweit ich weiß, funktioniert die Methode click()
nicht, weil das Element, auf das ich klicke, beim Laden der Seite nicht existiert (DOM ready).
Ich habe viele Antworten gefunden, die vorschlagen, .live('click',function(){...})
zu verwenden. Das funktioniert super!
.live()
wird jedoch ab jQuery 1.7
Also, ich habe versucht, stattdessen .on('click',function(){...})
zu verwenden, aber es funktioniert nicht (verhält sich genauso wie .click()
.
Weiß jemand warum, oder was kann ich tun, um .on()
ähnlich wie .live()
zu benutzen (was funktioniert)?
Sie sollten in der Lage sein, ein Format wie dieses zu verwenden:
%Vor% Dabei ist element
das Element, an das das Click-Ereignis gebunden werden soll. Die Verwendung von document
ist eine Art Worst-Case-Szenario, da Sie idealerweise ein Element verwenden möchten, das beim Laden des DOM vorhanden ist und in der DOM-Hierarchie näher an dem Element liegt, das dynamisch geladen wird.
Aus den jQuery .on () Dokumenten:
Event-Handler sind nur an die aktuell ausgewählten Elemente gebunden; Sie muss zu dem Zeitpunkt auf der Seite vorhanden sein, zu dem Ihr Code den Aufruf von .on () aufruft. Um sicherzustellen, dass die Elemente vorhanden sind und ausgewählt werden können, führen Sie das Ereignis aus Bindung innerhalb eines Dokument-Ready-Handlers für Elemente, die sich in der HTML-Markup auf der Seite. Wenn neues HTML in die Seite eingefügt wird, Wählen Sie die Elemente aus und fügen Sie Ereignishandler nach dem neuen HTML-Code hinzu in die Seite gelegt.
Tags und Links jquery onclicklistener onclick