625 Stimmen

Wie kann ich mit jQuery Ereignisse an dynamische HTML-Elemente anhängen?

Angenommen, ich habe einige jQuery-Code, der ein Ereignis-Handler für alle Elemente mit Klasse anhängt .myclass .

Zum Beispiel:

$(function(){
    $(".myclass").click( function() {
        // do something
    });
});

Und mein HTML könnte folgendermaßen aussehen:

<a class="myclass" href="#">test1</a>
<a class="myclass" href="#">test2</a>
<a class="myclass" href="#">test3</a>

Das funktioniert ohne Probleme. Überlegen Sie aber, ob die .myclass Elemente zu einem späteren Zeitpunkt auf die Seite geschrieben wurden.

Zum Beispiel:

<a id="anchor1" href="#">create link dynamically</a>
<script type="text/javascript">
$(function(){
    $("#anchor1").click( function() {
        $("#anchor1").append('<a class="myclass" href="#">test4</a>');
    });
});
</script>

In diesem Fall ist die test4 Link wird erstellt, wenn ein Benutzer auf a#anchor1 .

El test4 Link hat nicht die click() Handler zugeordnet, auch wenn er über class="myclass" .

Grundsätzlich würde ich gerne die click() Handler einmal zu verwenden und ihn sowohl auf Inhalte anzuwenden, die beim Laden der Seite vorhanden sind, als auch auf Inhalte, die später über AJAX/DHTML . Haben Sie eine Idee, wie ich das beheben kann?

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X