In meinem Projekt, ich erzeuge div-Elemente, die Eingabefelder mit den Anfrage Antwortdaten aus meiner Datenbank mit den Suchparametern enthalten. Ich muss in der Lage sein, ein keyup -Ereignis für zusätzliche Arbeit zu verwenden, aber der Klassenselektor funktioniert nicht, wenn die Eingabe mithilfe von append generiert wurde, obwohl die Klasse bei der Überprüfung vorhanden ist.Access keyup Ereignis auf Eingabeelement generiert durch Code
habe ich eine CodePen, die es zeigt: http://codepen.io/leofontes/pen/PNgabB?editors=1111
HTML
<div class="container" id="container">
<button id="button">Click</button><br>
</div>
CSS
.container {
background-color: #F00;
height: 200px;
width: 200px;
}
.dynamic-input {
margin: 5px;
}
Javascript/jQuery
$(document).ready(function() {
$('#button').click(function() {
for(var i = 0; i < 5; i++) {
$('#container').append('<input type="text" class="dynamic-input">')
}
});
$('.dynamic-input').keyup(function() {
console.log($(this).val());
});
});
Die jQuery Code funktioniert gut, ich habe es mit Eingaben innerhalb der $ (Dokument) .ready Funktion getestet und es hat getan, was ich beabsichtigte, ich verstehe nicht, warum es nicht, wenn es später generiert wird.
Ich habe auch versucht, eine versteckte Eingabe mit der Klasse bereits mit dem HTML geladen, aber das funktioniert auch nicht.
Alle Ideen oder Vorschläge geschätzt, danke
Mögliche Duplikat [Event dynamisch erstellten Elemente verbindlich?] (Http://stackoverflow.com/questions/203198/event-binding-on-dynamically-created-elements) – dave
Sie könnten 'anprobieren ('input', function() 'anstelle von' keyup' ... – mk117