【发布时间】:2012-11-22 21:57:09
【问题描述】:
我有一个复选框列表。每个复选框都有.change(function(){alert('xyz')})。每个复选框都有一个类abc。
我还有一个名为“ALL”的附加复选框。当“ALL”复选框被更改时,它会更改所有其他复选框的状态。
我希望更改“全部”复选框以触发所有其他复选框的更改 (.change(...))。但由于其他复选框的状态是以编程方式完成的,因此它本身不起作用。
我尝试使用$('.abc').change() 触发所有复选框的更改事件,但没有成功。
我做错了什么,如何完成手头的任务?
顺便说一句,如果我这样做 $('#id_of_a_specific_checkbox').change() 效果很好。
谢谢。
更新
我所拥有的示例:
http://jsfiddle.net/ZqJvc/
这几乎是我在大型项目中所拥有的......在简短的例子中它可以工作:/
但在实际项目中它不起作用。唯一的区别是在实际项目中我有很多复选框。奇怪......我猜它又回到了调试器。谢谢。
更新
在 Chrome 完全崩溃之后……我重新启动了浏览器,它就像上面的例子一样工作。抱歉浪费了我们的时间。再次感谢各位。
【问题讨论】:
-
使用 trigger() jquery 函数。 .trigger('改变')
-
你能不能不要
$(".abc").each(function () { $(this).change(); }); -
为什么需要触发所有复选框的更改事件?如果您尝试实际更改将使用 prop() 完成的状态。无论如何:
$('.abc').each(function() {$(this).trigger('change');}); -
为什么
$('.abc').change()不起作用,有什么错误吗?向我们展示代码和/或设置一个小型演示。 -
它对我有用:jsfiddle.net/9zYN8
标签: javascript javascript-events jquery