这是我的第一个问题,希望你能帮助我。
我在jQuery中使用多级手风琴,但我遇到了问题。当我打开"tab"
时,它会打开 - 关闭 - 打开。
你知道我该如何解决这个问题吗?
我离开了示例代码:
(function(jQuery){
jQuery.fn.extend({
accordion: function() {
return this.each(function() {
var $ul = $(this),
elementDataKey = 'accordiated',
activeClassName = 'active',
activationEffect = 'slideToggle',
panelSelector = 'ul, div',
activationEffectSpeed = 'fast',
itemSelector = 'li';
if($ul.data(elementDataKey))
return false;
$.each($ul.find('ul, li>div'), function(){
$(this).data(elementDataKey, true);
$(this).hide();
});
$.each($ul.find('a'), function(){
$(this).click(function(e){
activate(this, activationEffect);
return void(0);
});
$(this).bind('activate-node', function(){
$ul.find( panelSelector ).not($(this).parents()).not($(this).siblings()).slideUp( activationEffectSpeed );
activate(this,'slideDown');
});
});
var active = (location.hash)?$ul.find('a[href=' + location.hash + ']')[0]:$ul.find('li.current a')[0];
if(active){
activate(active, false);
}
function activate(el,effect){
$(el).parent( itemSelector ).siblings().removeClass(activeClassName).find( panelSelector ).slideUp( activationEffectSpeed, function(){
$(el).siblings( panelSelector )[(effect || activationEffect)](((effect == "show")?activationEffectSpeed:false),function(){
if($(el).siblings( panelSelector ).is(':visible')){
$(el).parents( itemSelector ).not($ul.parents()).addClass(activeClassName);
} else {
$(el).parent( itemSelector ).removeClass(activeClassName);
}
if(effect == 'show'){
$(el).parents( itemSelector ).not($ul.parents()).addClass(activeClassName);
}
$(el).parents().show();
});
});
}
});
}
});
})(jQuery);
$('#accordion').accordion();
感谢。