2010-11-16 39 views
0

我有一个HTML表格,其中第一列的单元格每个都包含一个带有“myClass”类的复选框。我也在该列的标题单元格中添加了一个复选框,并且我希望它能够工作,以便检查或取消选中标题单元格也会设置或取消设置所有行复选框。我有这样的代码在头复选框的点击处理程序:jQuery没有在Opera中一致地找到禁用的元素

if (jQuery(event.target).attr('checked') === true) { 
    alert(jQuery('td .myClass:enabled').length); 
    jQuery('td .myClass:enabled').attr('checked', 'checked'); 
} else { 
    alert(jQuery('td .myClass:enabled').length); 
    jQuery('td .myClass:enabled').removeAttr('checked'); 
} 

三排已经启用复选框,五级伤残的。

该代码在IE8,FF3.6和Chrome 7.0中正常工作。然而,在Opera 10.63中,我第一次检查标题单元格时,所有八行都被检查。随后代码按预期工作。

警报声明证实了这一点,每次除第一个外都显示'3'。

这是一个Opera bug吗?如果是这样,是否有解决方法?

+0

我们需要的示例页面http://www.jsbin.com – galambalazs 2010-11-16 16:43:04

回答

2

奇怪synchronisity - 我刚才分析的bug报告,我认为是同样的问题在几个小时前:)

是的,这可能是其中歌剧逾期不申请的伪类启用正确的错误在DOM中创建并随后插入到文档中的元素上。

使用类名替代:enabled可能是一个可接受的解决方法。或者在onload的所有复选框上反转.checked属性两次,也许?这听起来像是来回切换残疾人或检查状态会让Opera处理得很好。

+0

谢谢。我接受了你的建议,并通过检查,然后取消选中所有复选框,在用户首次单击标题框时“固定”它。之后,Opera在所有点击复选框上都没有问题。 – 2010-11-17 15:43:23

+1

优秀。我们会准备一个核心修复程序 - 在Opera 11之后的某个时间,可能 - 但解决方法不应该有任何不良副作用。 – hallvors 2010-11-18 03:20:47

相关问题