如何使用removeClass解决状态按钮中的jquery ui / firefox错误?

时间:2013-09-13 09:14:14

标签: javascript jquery css jquery-ui firefox

我限制了已选中复选框的数量,但在firefox上样式不正确。 实际上是一个带有状态按钮的firefox上的bug,请参阅firefox上的这个例子, 当您双击某个按钮时,如果lengh> gt,则状态不会更新。 3(在这种情况下),所以我尝试删除类的ui状态,但它不起作用,是否有人得到了解决方案?!

http://jsfiddle.net/mbAwC/22/

$('.limit :checkbox').change(function () {
    var $cs=$(this).closest('.limit').find(':checkbox:checked');
    if ($cs.length > 3) {
        $(this).prop('checked', false).removeClass("ui-state-active ui-state-hover ui-state-focus").button('refresh');

问候 杰斯

1 个答案:

答案 0 :(得分:1)

这是一个奇怪的错误,因为它发生在双击事件上。这就是为什么你的代码不起作用的原因,因为在双击时没有发生“更改”事件。因此,您无法更改状态并删除“onchange”中的类。 作为这个有趣问题的解决方案,我试图添加这样的:

$('.limit label').dblclick(function () {
     if (!$(this).is(':checked')) 
    {
        $(this).removeClass("ui-state-active ui-state-hover ui-state-focus ");
    }
});   

这会处理奇怪的双击并删除样式,如果它们在未选中的复选框上未正确应用。