触发javascript对复选框的更改
我正在构建一个jQuery插件来设置复选框的样式。我隐藏了真正的一个,并在它之后插入按钮,点击按钮时切换隐藏复选框。但是如果我通过JavaScript选中隐藏的复选框,假按钮当然不会改变。我曾考虑过使用jQuery的触发javascript对复选框的更改,javascript,jquery,checkbox,onchange,Javascript,Jquery,Checkbox,Onchange,我正在构建一个jQuery插件来设置复选框的样式。我隐藏了真正的一个,并在它之后插入按钮,点击按钮时切换隐藏复选框。但是如果我通过JavaScript选中隐藏的复选框,假按钮当然不会改变。我曾考虑过使用jQuery的.change()进行更改,但当使用JavaScript进行更改时,它也不会触发更改,而不是实际单击复选框 我希望这个插件是通用的,如果有人有一个像“全部选中”或“全部取消选中”这样的按钮,它可以用JavaScript实现,我希望我的假复选框按钮可以相应地改变 问题是我应该使用什么方
.change()
进行更改,但当使用JavaScript进行更改时,它也不会触发更改,而不是实际单击复选框
我希望这个插件是通用的,如果有人有一个像“全部选中”或“全部取消选中”这样的按钮,它可以用JavaScript实现,我希望我的假复选框按钮可以相应地改变
问题是我应该使用什么方法来代替jQuery的change(),以便不仅观察鼠标单击所做的更改,还观察javascript所做的更改,例如,$('checkbox').prop('checked',true)代码>
edit2:
我意识到没有合适的方法用JavaScript查看属性,除了每秒为每个复选框检查几次属性,这非常不吸引人。我决定不在我的插件中包含这种低效的功能,而是让用户在希望通过JavaScript操作值时也触发更改。您需要手动触发更改事件
$('#checkbox').attr('checked', 'checked').change();
看看这个:
您不能查看属性。您可以设置一个计时器,每隔几毫秒查找一次更改,但这并不令人满意
相反,当您的插件需要更新时,您应该依赖所有其他代码来触发更改事件(有时也可能不需要):
$(':checkbox').prop('checked', true).change();