【发布时间】:2011-08-19 22:36:37
【问题描述】:
我浏览了该网站,似乎找不到这个问题的答案。如果确实存在,请随时指导我回答上述问题。
我目前正在尝试执行一些基于树的复选框操作,但我遇到了一些我觉得奇怪的行为。
在谷歌浏览器中,我发现选中一个复选框会留下一些“残留物”,如果你愿意的话,那将不允许我使用“attrRemove('checked');”来选中或取消选中该复选框
有趣的是,Internet Explorer (9) 有我想要的结果。请在 Chrome 和 IE 中查看这个 jsFiddle,以便更好地比较效果。
http://jsfiddle.net/xixionia/9K5ft/
谁能解释这些差异,以及我如何能够选中/取消选中已“手动”选中的 chrome 中的复选框?
HTML
<input type="checkbox" />
<input type="checkbox" />
<input type="checkbox" />
<input type="checkbox" />
<input type="checkbox" />
JavaScript
$(':checkbox').click(function(e) {
if($(this).is(':checked')) {
$(':checkbox').attr('checked', 'checked');
} else {
$(':checkbox').removeAttr('checked');
}
});
提前感谢您的帮助。 :)
编辑:
我能够找到这项工作。如果其他人有任何其他解决方案,请告诉我,我会将其标记为解决方案。 :)
$(':checkbox').click(function(e) {
var value = this.checked;
$(':checkbox').each(function(){ this.checked = value; });
});
编辑:
原来,这个问题是 jQuery 1.6 特有的。以前版本的 jQuery 不会遇到这个问题。但是,我在这里发布了一个解决方案:Setting "checked" for a checkbox with jQuery?
【问题讨论】:
-
回复
if($(this).is(':checked')):试试if(this.checked)。不需要所有这些函数调用和字符串解析。详情:w3.org/TR/DOM-Level-2-HTML/html.html#ID-30233917 -
仅供参考:同样的问题出现在 Firefox 4 中。复选框被选中一次后,它不再起作用了。
-
这里解释了为什么它在 jQuery 1.6 中失败:edgarinvillegas.wordpress.com/2011/05/10/…
标签: jquery google-chrome checkbox