on('change',...)在jQuery 1.11.1中未启动
我试图在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 %]
任何想法?谢谢
回答:
你为什么在这里使用循环?相反,您可以直接上的所有元素的集合中的使用
$("input[id^='item_']").on('change', function(){ var id = this.id;
console.log(id);
})
回答:
所以我没有注意到的是,该项目使用了JavaScript库I检查附加一个事件侦听器。看起来像这个库覆盖了所有经典的jQuery侦听器并实现它自己的。听众的名单是在这里:
iCheck Callbacks
而在我的情况下,JS代码应该是这样的:
$(element).on('ifChecked', function(event){ alert('Change Happened');
});
由于这个项目不是我做的,我不知道他们使用这样的东西。我希望这可以帮助未来的人。
以上是 on('change',...)在jQuery 1.11.1中未启动 的全部内容, 来源链接: utcz.com/qa/262332.html