删除Jquery添加的类

时间:2011-05-24 14:25:07

标签: javascript jquery

我正在研究手风琴而Jquery正在添加类,我想停止jquery添加一些类。我怎样才能做到这一点? 下面是代码,但Jquery继续为一些访问过的元素添加.ui-state-default。

if($check.hasClass('.ui-state-default')){
            $(this)('.columns > span').removeClass('ui-state-default');
            $(this)('.columns > span').addClass('ui-state-active');
        }else 
        {
            $(this)('.columns > span').removeClass('ui-state-active');
            $(this)('.columns > span').addClass('ui-state-default');
        }

1 个答案:

答案 0 :(得分:0)

至于禁用手风琴的功能,请查看此链接是否符合您的要求:

how to disable certain links of jquery accordion

就您的代码而言,在hasClass中,您不需要.,并且您的查找上下文创建错误:

var element = $(this).find('.columns > span');

if($check.hasClass('ui-state-default')) {
    element.removeClass('ui-state-default').addClass('ui-state-active');
} else {
    element.removeClass('ui-state-active').addClass('ui-state-default');
}

就维持状态而言,使用.data会使此过程更容易:

var elements = $(this).find('.columns > span'),
    enabled = element.data('enabled');

elements.each(function() {
    var element = $(this);
    if (element.data('enabled')) {
        element
            .data('enabled', false)
            .removeClass('ui-state-default')
            .addClass('ui-state-active');
    } else {
        element
            .data('enabled', true)
            .removeClass('ui-state-default')
            .addClass('ui-state-active');
    }
});

您可以通过查看.data('enabled')数据随时了解是否启用了某个元素。