【发布时间】:2013-06-02 10:06:32
【问题描述】:
我有一个简单的多级手风琴插件。这对我来说几乎是完美的。
(function(jQuery){
jQuery.fn.extend({
accordion: function() {
return this.each(function() {
var $ul = $(this);
if($ul.data('accordiated'))
return false;
$.each($ul.find('ul, li>div'), function(){
$(this).data('accordiated', true);
$(this).hide();
});
$.each($ul.find('a'), function(){
$(this).click(function(e){
activate(this);
return void(0);
});
});
var active = $('.active');
if(active){
activate(active, 'toggle');
$(active).parents().show();
}
function activate(el,effect){
$(el).parent('li').toggleClass('active').siblings().removeClass('active').children('ul, div').slideUp('fast');
$(el).siblings('ul, div')[(effect || 'slideToggle')]((!effect)?'fast':null);
}
});
}
});
})(jQuery);
完整代码 - http://jsfiddle.net/SKfax/
我正在尝试稍微改造此代码,但没有任何成功。 我只需要在 'a' 元素内部而不是它们的父级 'li' 内切换类('.active')和 removeClass('.active')
P.S.:'.active' 类仅适用于当前打开部分的标题。
【问题讨论】:
-
你完全可以省略
return void 0;- 这就是所有函数的作用:-) -
不幸的是,这不是答案:(
-
这就是为什么我评论它而不是发布答案:-) 但是,我并没有真正理解你的问题。小提琴对我不起作用,我看不到您尝试切换链接上的
active类而不是列表项。你为什么需要它?
标签: javascript jquery accordion jquery-ui-accordion