4

我限制了选中复选框的数量,但 Firefox 上的样式不正确。实际上,firefox 上有一个带有状态按钮的错误,请参见 firefox 上的这个示例,当您双击按钮时,如果 lengh > 3(在这种情况下)状态不会很好地更新,所以我尝试删除 ui 状态类但它没有t工作,有人有解决方案吗?

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');

问候杰斯

4

1 回答 1

1

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

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

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

于 2013-09-16T22:38:34.287 回答