2012-08-09 79 views
2

jquery:鏈接不工作我剛剛構建了一個下拉菜單,我想點擊下拉,並在其他點擊後返回。這完全適用於我使用的切換,但問題是在下拉後,鏈接不會執行。jQuery:鏈接後.toggle()

$(函數(){

$("#nav_menu-2 ul.menu ul").css({ display: 'none' }); 


    $("#nav_menu-2 ul.menu #testbutton").toggle(function() { 


     $(this).find('ul.sub-menu') 
      .stop(true, true).delay(50).animate({ "height": "show", "opacity": "show" }, 300); 
    }, function(){ 

     $(this).find('ul.sub-menu') 
      .stop(true, true).delay(50).animate({ "height": "hide", "opacity": "hide" }, 300); 
    }); 

}); 

所以我geuss是,菜單已經刪除後,又回到了上一點擊,而不是執行的鏈接。但是因爲我是很新的使用Javascript/jQuery的,我不知道我有什麼其他選擇,任何想法

回答

2

我會改用slideToggle,綁定到按鈕的單擊事件應該打開菜單:?

$("#nav_menu-2 ul.menu #testbutton").click(function() { 
    $('ul.sub-menu').slideToggle(); 
}); 

您可能需要稍微更改選擇器,具體取決於菜單的構建方式。

+0

是的,這個工程! Thnx A LOT :) – Jando 2012-08-09 13:31:09

2

這是一個已知的副作用toggle()。該文件說:

的實施也要求.preventDefault()上的事件,所以鏈接 不會遵循和按鈕將無法點擊,如果.toggle()已 被稱爲元素。

要解決該問題,您必須綁定到click而不是toggle。正如Andrew所說,您可以使用slideToggle()click事件獲得相同的行爲。

+0

感謝您的解釋。 – 2013-02-22 13:25:07