2013-04-28 97 views
0

我有滑動菜單內容的工作代碼。滑動內容

但是我在保持活動狀態時遇到了一些問題,它與懸停狀態相同,當您單擊某個按鈕並單擊該按鈕關閉它時將其關閉。

Here is my working example.

// IF THE NEXT SLIDE WASN'T OPEN THEN OPEN IT 
if($(this).next().is(':hidden') == true) { 
    // ADD THE ON CLASS TO THE BUTTON 
    $(this).addClass('on'); 

    // OPEN THE SLIDE 
    $(this).next().slideDown('normal'); 
} 
+0

$(這)不是指向accordionButton但明年上$( 'accordionButton [1]。 ')()是(':隱藏')。 – 2013-04-28 15:11:48

回答

0

嘗試

//ACCORDION BUTTON ACTION (ON CLICK DO THE FOLLOWING) 
$('.accordionButton').click(function() { 

    //REMOVE THE ON CLASS FROM ALL BUTTONS 
    $('.accordionButton').not(this).removeClass('on'); 

    //IF THE NEXT SLIDE WASN'T OPEN THEN OPEN IT 
    if($(this).next().is(':hidden') == true) { 

     //ADD THE ON CLASS TO THE BUTTON 
     $(this).addClass('on'); 

     //OPEN THE SLIDE 
     $(this).next().slideDown('normal'); 
    } 

}); 

演示:Fiddle

+0

阿倫覺得你打破了近功能,當你點擊另一個內容 - 紅色假設保留在前面,直到你手動關閉它。謝謝雖然我仍然努力在我的結尾。 – 2013-04-28 15:05:17

1

這裏是我的解決方案。

//ACCORDION BUTTON ACTION (ON CLICK DO THE FOLLOWING) 
    $('.accordionButton').click(function() { 

     //REMOVE THE ON CLASS FROM ALL BUTTONS 
     $('.accordionButton').removeClass('on'); 

     //NO MATTER WHAT WE CLOSE ALL OPEN SLIDES 
     var self = this; 
     $(this).next().slideToggle('normal', function() { 
      $(self).toggleClass('on', $(this).is(':visible'));         
     }); 
    }); 

Try the demo

+0

這個工程!感謝阿迪! – 2013-04-28 15:11:28

+0

不客氣! – 2013-04-28 15:13:05