2012-02-25 24 views
-1

我有一個小工具欄,我希望其中一個項目在導航欄中點擊時打開一個下拉菜單。我有這樣的:爲什麼我的滑動切換不工作?

$("#dropdown_menuitem").click(function() { 
    $(this).find('ul').slideToggle('slow'); 
}); 

但是在下拉菜單中從不點擊的出現,我的HTML看起來像這樣:

<li id="dropdown_menuitem"><a href="#">MyAxon<img style="padding-left:5px;" src="img/drop-down.png"/></a> 
    <ul class="dropdown reverse_gradient"> 
     <li class="dropdown"><a href="#">Teachers</a></li> 
     <li class="lastElementInDropDown dropdown"><a href="#">Students</a></li> 
    </ul> 
</li> 
. 
. 

編輯: 我試過alert($(this).find('ul').html());,我得到一個警報,兩者的<li>元素。

$(this).find('ul').show(200);沒有工作,要麼

內容不動態添加。

我的CSS是這樣的:

nav.main_nav ul.dropdown{ 
    opacity: 0; 
    position: absolute; 
    top: 35px; 
    left: 10px; 
    border-bottom-right-radius: 10px; 
    -moz-border-bottom-right-radius: 10px; 
    border-bottom-left-radius: 10px; 
    -moz-border-bottom-left-radius: 10px; 
    display: none; 
    z-index: 100; 
    } 

任何想法?

+0

它對我的工作很好,你可以發表你的代碼表示問題的小提琴嗎? – 2012-02-25 15:20:09

+0

也適用於我 – Henesnarfel 2012-02-25 15:20:51

+0

工作正常,這意味着有更多這樣的([見這個jsFiddle](http://jsfiddle.net/2cFec/))。該菜單項是動態添加的嗎?你確定點擊事件被調用嗎? – Chad 2012-02-25 15:22:53

回答

-1

發現了問題,我在我的樣式表,這是阻止我看到下拉菜單中設置不透明度爲零。

1

首先,你必須確保你點擊的不是鏈接本身。在這裏,你甚至可以點擊。 - 但是如果用戶真的點擊了鏈接呢?那麼他們將被重定向到鏈接中的href。

所以爲了防止你有一個click事件添加到鏈接它的自我:

$("#dropdown_menuitem a").click(function(e) { 
    if($(this).parent().find('ul').length > 0) { 
     e.preventDefault():; 
    } 
}); 

如果當前存在立一個下拉這將檢查 - 如果確實如此,我們不會有它會重定向用戶以中斷我們的JavaScript執行。所以我們所做的就是防止當前的事件。如重定向。

試試吧,讓我知道它的工作:)

+0

仍然不能使用這個。顯然我在其他地方有問題 – wbarksdale 2012-02-25 15:46:56

+0

你有任何錯誤輸出?如果不嘗試使用console.log();方法拋出文本到瀏覽器。然後製作其中的一些內容並查看點擊事件是否被觸發。你也可以嘗試在Firefox中使用chrome或firebug來發現元素是否正在改變。例如,你可以打開html查看器。找到ul,然後單擊li。然後看看它是否發生了什麼。如果有東西試圖將鼠標懸停在元素上,以查看它是否與z-index或元素的位置有關。 – danniehansenweb 2012-02-25 17:33:39