触发由javascript制作的复选框的更改

时间:2012-08-29 00:37:09

标签: javascript jquery checkbox onchange

我正在构建一个jQuery插件来设置样式复选框。我隐藏真实的一个,然后插入按钮,当点击切换隐藏的复选框。但是,如果我通过JavaScript检查隐藏的复选框,假按钮当然不会改变。我考虑过使用jQuery .change()进行更改,但它也不会在JavaScript发生时触发更改而不是实际点击复选框。

我希望插件具有通用性,如果某人有一个像“全部检查”或“取消全部检查”这样的按钮,那么它也能正常工作,我希望我的假复选框按钮能够相应地改变。

问题是我应该使用什么方法来代替jQuery的更改(),以便不仅可以通过鼠标点击进行更改,还可以通过javascript进行更改 $('checkbox').prop('checked', true);

EDIT2: 我意识到没有正确的方法来使用JavaScript查看属性,除了每个复选框每秒多次检查属性非常没有吸引力。我决定不在我的插件中包含这样低效的功能,而是让用户也触发它如果他想通过JavaScript操纵值,就会改变。

2 个答案:

答案 0 :(得分:6)

您无法观看属性。您可以设置一个每隔几毫秒查找一次更改的计时器,但这并不令人满意。

相反,你应该依赖所有其他代码来触发更改事件,当他们想要像你这样的插件更新时(可能还有他们没有的情况):

$(':checkbox').prop('checked', true).change();

答案 1 :(得分:0)

您需要手动触发更改事件。

$('#checkbox').attr('checked', 'checked').change();

看看这个: JsFiddle