我最初有3个具有相同名称的复选框,并且动态创建了一个复选框。如果我点击3个初始复选框中的任何一个,它会触发事件,但对新创建的复选框不起作用。
<input type="checkbox" name="NewMerheckbox" id="1"/>
<input type="checkbox" name="NewMerheckbox" id="2"/>
<input type="checkbox" name="NewMerheckbox" id="3"/>
<div id="newcheckbox">
</div>
和
$('input[type="checkbox"][name="NewMerheckbox"]').on('click', function() {
alert($(this).attr('id'));
});
$('#newcheckbox').html('<input type="checkbox"name="NewMerheckbox" id="4"/>');
答案 0 :(得分:1)
您正在尝试向尚未存在的对象添加点击处理程序。 jQuery允许您将单击处理程序添加到父元素,以便它们仅在某些子项上触发,但在设置单击处理程序时不必存在这些子项。
$('body').on('click', 'input[type="checkbox"][name="NewMerheckbox"]', function() {
alert($(this).attr('id'));
});
这会导致在body
上设置点击处理程序,它将处理自身和子元素的点击事件。附加参数用于过滤要过滤的事件,以便只有匹配选择器的子项才会触发处理程序。由于处理程序在body
上,因此在创建处理程序时不必存在目标子项。当然,您可以使用更合适的父元素。这在.on()。
答案 1 :(得分:0)
嘿试试这个更新的希望它能帮助你
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="checkbox" name="NewMerheckbox" id="1"/>
<input type="checkbox" name="NewMerheckbox" id="2"/>
<input type="checkbox" name="NewMerheckbox" id="3"/>
<div id="newcheckbox">
</div>
{{1}}