我正在研究手风琴而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');
}
答案 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')
数据随时了解是否启用了某个元素。