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

回到顶部