Я пытаюсь прикрепить событие с изменением к вводу, который я вставляю динамически. HMTL начинается следующим образом:
<div id="myDiv"></div>
Затем вставьте HTML-код в него, когда страница активна (она загружается через ajax, поэтому вместо onReady она использует функцию успеха):
$("#myDiv").html('<table><tr><td><input type="text" class="myInput"></td></tr></table>');
чтобы связать обработчик события onChange с этим, у меня есть следующее событие события делегирования события в onReady документа:
$("#myDiv").on('change', 'input.myInput', function(){ alert($(this).attr('id')); })
Есть ли что-то, что я делаю неправильно, событие никогда не срабатывает.
$("body").on('change', '.myinput', function(){ alert($(this).attr('id')); });
Попробуйте следующее: http://jsfiddle.net/h7wyS/. Получите перемены ввода... не измените свой "div".
$("#myDiv").html('<table><tr><td><input type="text" class="myInput"> </td></tr></table>');
// added the 'blur' too.
$("#myDiv .myInput").on('change, blur', function(e){
alert($(this).parents('div:first').attr('id'));
});
Javascript чувствителен к регистру, ваше имя класса - myinput
, но вы слушаете myInput
, меняете тот или иной.
Пара думает, что заметила, вы используете случай верблюда во второй строке, который должен быть действительно "myinput". И этот элемент не имеет идентификатора, поэтому вы можете добавить id, иначе вы получите неопределенное в поле предупреждения.