开发者

remove classes added by Jquery

I开发者_开发技巧 am working on an accordion and Jquery is adding classes, I want to stop jquery to add some classes. how can I do that? Below is the code but Jquery keeps on adding .ui-state-default to some visited elements.

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


As far as disabling the functionality of your accordion, see if this link has what you are looking for:

how to disable certain links of jquery accordion

As far as your code, in your hasClass, you don't need the ., and your find contexts are created incorrectly:

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

As far as maintaining state, using .data would make this process easier:

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

At any time, you can know if an element is enabled or disabled by checking the .data('enabled') data.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜