2012-08-30 34 views
0

當用戶點擊手風琴菜單按鈕時,它通常會起作用。但是,大約有十分之一的動畫不會粘住,並且可以返回到展開或摺疊狀態,具體取決於它開始時的狀態。我從其他地方複製了腳本,但看起來很簡單。爲什麼我的jQuery手風琴菜單不粘?

HTML:

<ul id="system-nav"> 
    <li><div>Umbrella</div> 
     <ul> 
      <li><a href="../../Admin">Admin</a></li> 
      <li><a href="../../Deshboard">Dashboard</a></li> 
      <li><a href="../../Daylight">Daylight</a></li> 
     </ul> 
    </li> 
</ul> 

就像我已經說過了,我已經嘗試了幾種不同版本的同一件事。這些只是隨機抽取的,我只是稍微編輯了一下。他們都做同樣的事情。

$("#system-nav > li > div").click(function(){ 
if(false == $(this).next().is(':visible')) { 
    $('#system-nav ul').slideUp(300); 
} 

$(this).next().slideToggle(300).delay(250); 
}); 

$('#system-nav ul:eq(0)').hide(); 

$(document).ready(function() { 
$('#system-nav li div').click(function() { 
    $('#system-nav ul').slideUp('slow');  
    $(this).next().slideDown('slow'); 
}); 

$("#system-nav ul").hide(); 

}); 

$(document).ready(function(){ 
$('#system-nav li div').click(function() { 
    $(this).next().slideDown('slow'); 
    return false; 
}).next().hide(); 
}); 
+1

我能想到的唯一的事情是更具體,在接下來的()函數的選擇。也許在某個地方有重疊? – Lowkase

回答

1

在使用:visible第一JS樣本不是正確proprety。使用:hidden代替

在第二個中,您正在剪輯它嗎?

在最後一個你取消它?


這裏有一個工作代碼:http://jsfiddle.net/Q9qNw/

$("#system-nav").on("click","div",function(){ 
    if ($(this).next().is(":hidden")) { 
     $(this).next().slideDown("500"); 
    } else { 
     $(this).next().slideUp("500"); 
    } 
});