在我的代码Jquery中,我使用了:
$('#save').click(function (){
//Staff...
$("input:checkbox").prop('checked', true);
//Staff...
}
另一方面,我有:
$("input:checkbox").change(function(){
console.log('change ok');
});
问题是检查取消选中只会在我用鼠标检查时发生,但是当我点击save
按钮(其代码在上面)时,没有任何反应。
有什么建议? thnks
答案 0 :(得分:3)
以编程方式更改属性不会自动调用change事件,您必须手动调用它:
$("input:checkbox").prop('checked', true).trigger('change');
.trigger()
的文档。
答案 1 :(得分:2)
尝试使用此代码在.trigger("change")
之后添加$("input:checkbox").prop('checked', true)
,如下所示:
$("input:checkbox").prop('checked', true).trigger("change")
trigger method强制执行附加到给定事件类型的匹配元素的所有处理程序和行为。
注意:您在第一个代码的末尾也忘记了)
。所以纠正的代码是:
$('#save').click(function (){
//Staff...
$("input:checkbox").prop('checked', true).trigger("change")
//Staff...
})
你可以看看这个小提琴:http://jsfiddle.net/LpC85/
答案 2 :(得分:1)
要自动触发事件,您需要在jQuery中使用trigger()
实施例:$("input:checkbox").prop('checked', true).trigger('change');
答案 3 :(得分:1)
再次调用change
函数。
$('#save').click(function (){
//Staff...
$("input:checkbox").prop('checked', true).change();
//Staff...
}); //<---- notice missing closing bracket()