Jquery .Tastendruck auf eine dynamisch hinzugefügte input
Ich bin zurzeit hinzufügen eine Eingabe über eine .klicken Sie auf Ereignis und dann wollen hören keypress tritt auf, dass an diesem Eingang. Jedoch, die angehängt ist nicht feuern Ereignisse, nachdem es eingefügt ist (d.h. Unschärfe, keypress, focus). Hat jemand irgendwelche Vorschläge? Vielen Dank im Voraus!
$("#recipientsDiv").click(function(){
$(this).append('< input type="text" id="toInput" class="inlineBlockElement" style="border:0px none #ffffff; padding:0px; width:20px; overflow:hidden;" />')
$("#toInput").focus();
});
$("input").keypress(function(e){
var inputStr = $(this).html();
$("#inputCopier").text(inputStr);
var newWidth = $("#inputCopier").innerWidth;
$(this).css("width", newWidth);
});
$("#toInput").blur(function(){
$("#toInput").remove();
});
Habe ich versuche .keyup .keydown-wie auch, Sie arbeiten nicht.
InformationsquelleAutor BinarySolo00100 | 2009-12-31
Du musst angemeldet sein, um einen Kommentar abzugeben.
Um zu erfassen
blur
/focus
Veranstaltungen, warum nicht fügen Sie die Ereignishandler zu dem erstellten element, bevor Sie es zum DOM?InformationsquelleAutor K Prime
Ihre
keypress
- handler wird nur Hinzugefügt, um die Elemente, die vorhanden sind, wenn Sie Hinzugefügt wurden.Müssen Sie rufen Sie die
live
Methode, um fügen Sie es zu jedem element entspricht dem Selektor, egal Wann es Hinzugefügt wurde.Beispiel:
Fügen Sie dem handler an das element, vor dem Anhängen an DOM - siehe meine Antwort unten
InformationsquelleAutor SLaks
In Antwort auf Ihren Kommentar:
Als Sie bemerkte, das
live
Methode unterstützt nicht dieblur
Veranstaltung.Als workaround könnten Sie manuell hinzufügen, die handler jedes mal, wenn Sie ein element hinzuzufügen, wie dieser:
InformationsquelleAutor SLaks
könnten Sie versuchen,
InformationsquelleAutor Breton