2011-05-13 52 views
0

好吧,那麼。我試圖創建一個使用fadeToggle()排序的下拉菜單。jQuery,fadeToggle和列表項

http://westrock.juggernautwebsites.com/是該網站當前所在的位置。如您所見,當用戶選擇「屬性」時,會發生淡入淡出效果。但是,在下拉菜單發生後,用戶想要從屬性下拉列表中選擇一個li,他們無法(我知道我已經返回false; set,但是應該是原始ul,不是?)

同樣,當子項顯示時,如果將鼠標懸停在About上,則會在屬性子li上顯示:懸停效果。

我很驚訝。任何幫助,非常感謝。

$('#menu-item-13').click(function() { 
    $(this).children('ul').fadeToggle({ 
     duration: 200 
    }); 
    return false; 
}); 

*編輯 我覺得我需要從影響兒童列表項目和限制的CSS和jQuery,但我不知道如何做到這一點。我以爲孩子只能在DOM上下一級,而且由於我選擇了'ul',函數不會影響列表項...

+0

當我選擇「屬性」時,沒有任何反應。 – 2011-05-13 21:11:44

回答

1

感謝大家的幫忙!這是我最終使用的結果。

$('#primary li').hover(function() { 
    $(this).children('ul').fadeToggle({ 
     duration: 200 
    }); 
}); 
    $('menu-item-54').click(function() { 
    return false; 
}); 

什麼我試圖完成懸停(或點擊),subnav將擴大開放。

1

你的例子根本不適用於我,但如果我'如果你正確理解你,你希望孩子ul不受連接到父級的點擊處理程序的影響。你可以這樣做:

$('#menu-item-13 > ul').click(function(e){ 
    e.stopPropagation(); 

    // ... do your thing 
}); 

這基本上向上冒泡到父#menu-item-13停止在ul點擊。正因爲如此,fadeToggle也不會觸發ul的點擊,所以如果仍然需要,你必須將其添加到ul的點擊。

+0

對不起,我當時一定在做這個或者什麼的。我添加了e.stopPropagation,但我無法通過單擊屬性來觸發fadeToggle。 – paulruescher 2011-05-13 23:58:24

+0

你仍然需要你的原始代碼來顯示它。 。 – 2011-05-14 01:05:29

+0

'$( '#一次Li a')的單擊(函數(e)中{ \t $(本)的.next()fadeToggle({ \t \t持續時間:200 \t}); \t返回假; });'基本上是我想要的,但是,返回false;禁用導航中的所有錨點,我只想禁用有孩子的鏈接(例如下拉級別) – paulruescher 2011-05-15 05:10:11