2012-02-21 58 views
-2

誰能幫爲什麼當我點擊菜單鏈接這是不工作?當我點擊菜單時,它不顯示下拉菜單。jQuery的菜單問題

請此鏈接jsfiddle

編輯

現在我改變了它的代碼上查看代碼。現在,當我點擊菜單鏈接時,它會顯示下拉菜單,但當我點擊其他地方時,它不會隱藏它。

jsfiddle

+2

請在這裏發表您相關的代碼。 – PeeHaa 2012-02-21 11:26:10

+1

因爲你使用'。點擊()'事件,比如'.hover的bug()' – 2012-02-21 11:33:02

+0

它做工精細與懸停,我認爲你應該使用點擊和模糊 – 2012-02-21 11:44:34

回答

3

試試這個方法:

$(function() { 
     $('.top-nav li').click(function() { 
      $('ul',this).toggle(); 
     }); 
    }); 

看起來你已經使用了.hover()功能語法click這是行不通的。

而且不要忘了return false;或鏈接將被緊隨其後。或者,您可以使用:e.preventdefault();

return false同時做兩e.preventDefault()e.stopPropagtion()。但是爲了使用e不應將參數添加到函數:$('.top-nav li').click(function(e) {

0

這爲我工作:

$(function() { 
    $('.top-nav li a').click(function() { 
     //this reveals the ul that is immediately after the clicked item 
     $(this).next('ul').toggle(); 
    }); 
});​ 

你可能想增加一個功能,可以隱藏所有其他subnavs當一個人發現,否則你可以讓他們全部打開。這應該這樣做:

$(function() { 
    $('.top-nav li a').click(function() { 
     //this hides all uls inside top-nav 
     $('.top-nav ul').hide(); 
     //this reveals the ul that is immediately after the clicked item 
     $(this).next('ul').toggle(); 
    }); 
});​ 

希望幫助!

+0

我改變了觸發李一。通過這種方式,您可以在top-nav中擁有「非活動」元素。如果觸發停留在李,那麼,你是對的:) – Heroes182 2012-02-21 11:52:18

+0

與此問題是,當我點擊別的地方我的意思是它不隱藏所有下拉菜單空的地方。使用鼠標離開 – 2619 2012-02-21 11:57:47

0

試試這個

$(function() { 
    $("ul.top-nav li").click(function() { 
    $('ul', this).css("display", "block"); 
    }); 

    $("ul.top-nav li").mouseleave(function() { 
    $('ul', this).css("display", "none"); 
    }); 
}); 
+0

,它隱藏所有下拉菜單。 – 2012-02-22 13:20:49