更改时文本输入的jQuery事件委派

更改时文本输入的jQuery事件委派,jquery,event-delegation,Jquery,Event Delegation,我正在尝试将更改事件附加到动态插入的输入。HMTL开始时是这样的: <div id="myDiv"></div> 是否我做错了什么,事件永远不会被触发。Javascript区分大小写,你的类名是myinput,但你正在收听myinput,改变其中一个。Javascript区分大小写,你的类名是myinput,但你正在收听myinput,改变一个或另一个 $("body").on('change', '.myinput', function(){ al

我正在尝试将更改事件附加到动态插入的输入。HMTL开始时是这样的:

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

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

Javascript区分大小写,你的类名是
myinput
,但你正在收听
myinput
,改变其中一个。

Javascript区分大小写,你的类名是
myinput
,但你正在收听
myinput
,改变一个或另一个

$("body").on('change', '.myinput', function(){ alert($(this).attr('id')); });
试试这个:

$(“#myDiv”).html(“”);
//还添加了“模糊”。
$(“#myDiv.myInput”).on('change,blur',function(e){
警报($(this).parents('div:first').attr('id');
});
试试这个:

$(“#myDiv”).html(“”);
//还添加了“模糊”。
$(“#myDiv.myInput”).on('change,blur',function(e){
警报($(this).parents('div:first').attr('id');
});

请注意,您在第二行中使用了驼峰大小写,实际上应该是“myinput”。这个元素没有Id,所以您可能需要添加Id,否则您将在警报框中得到未定义的Id

需要注意的是,您在第二行中使用了camel case,它实际上应该是“myinput”。这个元素没有Id,所以您可能需要添加Id,否则您将在警报框中得到未定义的Id

这必须更进一步,但仍然不起作用。有一件事我没有想到,div#myDiv是在通过ajax填充的模式对话框中创建的,成功后,div由javascript填充。所以,依附于身体无疑是朝着正确方向迈出的一步。但是,它不起作用。这必须更进一步,但仍然不起作用。有一件事我没有想到,div#myDiv是在通过ajax填充的模式对话框中创建的,成功后,div由javascript填充。所以,依附于身体无疑是朝着正确方向迈出的一步。然而,它没有起作用。
$("#myDiv").on('change', 'input.myInput', function(){ alert($(this).attr('id')); })
$("body").on('change', '.myinput', function(){ alert($(this).attr('id')); });
$("#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'));
});