2011-01-19 31 views
1

我无法弄清楚如何为这个手风琴家添加一个活跃状态。我觉得我很近,但我必须点击两次,以便箭头状态改变。任何想法我做错了什么?为我的生活添加一个jquery活动状态给一个手风琴家

$('ul.expand').each(function(){ 
    $('li.md', this).filter(':first').addClass('top').end().filter(':not(.open)').next().hide(); 
    $('li.md', this).click(function(){ 
     if($(this).hasClass('open')) { 
      $(this).find('.arrow').addClass('active'); 
      return false; 
     } else { 
      $(this).find('.arrow').removeClass('active'); 
      $(this).parent().find('li.md').removeClass('open').next().filter(':visible').slideUp(); 
      $(this).addClass('open').next().slideDown(); 
      $(this).find('.arrow').addClass('active'); 
     } 
    }); 
}); 

这里是HTML:

http://www.lastyearsloss.com/mav/mobile/

+0

从查看你的代码,我会说可以做很多优化。 – 2011-01-19 16:38:59

+0

您链接中的JavaScript与您在此处发布的内容不同:S – 2011-01-19 16:44:12

回答

2

在else中删除所有活动类,因为手风琴只允许1个活动成员。

$('li.md').find('.arrow').removeClass('active'); // remove all actives 
$(this).find('.arrow').addClass('active'); // activate current 
0
$('li.md').find('.arrow.active').removeClass('active'); 

你试过了吗?

+0

是的。看起来我必须点击标题栏两次才能更改箭头。 – Robert 2011-01-19 16:40:58

相关问题