3

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

我希望插件是通用的,并且如果有人有一个像“全选”或“取消全选”这样的按钮来使用 JavaScript,我希望我的假复选框按钮也能相应地改变。

问题是我应该使用什么方法来代替 jQuery 的 change() 以便不仅可以查看鼠标点击所做的更改,还可以查看 javascript 例如 $('checkbox').prop('checked', true);

编辑2: 我意识到没有正确的方法来使用 JavaScript 来查看属性,除了为每个复选框每秒检查几次属性,这是非常没有吸引力的。我决定不在我的插件中包含这种低效的功能,而是将它留给用户也如果他想通过 JavaScript 操作值,则触发更改。

4

2 回答 2

6

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

相反,当他们希望像您这样的插件更新时,您应该依赖所有其他代码来触发更改事件(也可能存在不更新的情况):

$(':checkbox').prop('checked', true).change();
于 2012-08-29T12:42:40.390 回答
0

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

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

看看这个: JsFiddle

于 2012-08-29T01:04:53.587 回答