我试图在jQuery 1.11.1中使用动态ID在多个复选框上设置更改侦听器。对于一个不知名的理由,我所尝试的东西都不起作用。一个脚本被加载,直到我得到的地方,我做这点工作的成功:on('change',...)在jQuery 1.11.1中未启动
$("input[id^='item_']").each(function(index,element) {
// This part works
console.log("Foreach loop: " + element.id);
$(element).change(function(){
// This is the part that does not work
alert('Change Happened');
});
});
我花了2小时以来围绕谷歌搜索和测试不同的解决方案。我尝试用'$(“#”+ element.id)'替换'$(element)'。然后我尝试了其他函数,比如bind(),on()等等,但都没有成功。我的项目是一个Perl应用程序,与此HTML:
[% FOR item IN items %]
[% id = 'item_' _ item.title %]
<div class="choice-row">
<input type="checkbox" id="[% id %]">
<label for="[% id %]">Item</label>
</div>
[% END %]
任何想法?谢谢
检查您的控制台是否有错误。另外,这个元素是在* DOM加载之后添加的?你确定选择符匹配吗? –
^^它看起来很像你在那个代码中有一个基本的语法错误(缺少'});')。另外请注意,只有当控件失去焦点时,“更改”才会触发。另请注意,v1.11.1已过时。 :-) –
控制台没有错误,选择器匹配。是的,我可以得到它的ID和属性,它是唯一不工作的听众。 –