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

How to solve jquery ui / firefox bug in state button with removeClass?

本文关键字:ui jquery firefox 错误 removeClass 何使用 解决 状态 按钮      更新时间:2023-09-26

我限制了选中复选框的数量,但火狐浏览器上的样式不正确。实际上火狐上有一个带有状态按钮的错误,请参阅火狐上的这个示例,当您双击按钮时,如果 lengh> 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');

问候杰西

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

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

这将处理奇怪的双击,并在样式未选中的复选框上错误地应用样式时删除样式。