jQuery事件委派,用于更改文本输入

时间:2013-12-19 20:06:26

标签: jquery event-delegation

我正在尝试将on change事件附加到我动态插入的输入中。 HMTL就像这样开始:

<div id="myDiv"></div>

然后在页面处于活动状态时将HTML注入其中(它通过ajax加载,而不是onReady,它使用成功函数):

$("#myDiv").html('<table><tr><td><input type="text" class="myInput"></td></tr></table>');

为了将onChange事件处理程序附加到此,我在doc的onReady中有以下事件委托事件绑定:

$("#myDiv").on('change', 'input.myInput', function(){ alert($(this).attr('id')); })

我做错了什么,事件永远不会被触发。

3 个答案:

答案 0 :(得分:4)

Javascript区分大小写,您的班级名称为myinput,但您正在聆听myInput,更改其中一个。

答案 1 :(得分:0)

$("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'));
});

答案 2 :(得分:0)

有几个人想要注意,你在第二行使用骆驼案,实际上应该是'myinput'。并且此元素没有Id,因此您可能想要添加id,否则您将在警告框中未定义。