0
我正在爲使用jQuery的觸摸設備創建下拉導航欄。當點擊菜單項標題和點擊導航外部時,我可以隱藏下拉菜單,但是,當點擊另一個下拉菜單項目標題時,我無法隱藏下拉菜單。兩者都保持打開狀態,直到我在導航欄外單擊或再次單擊菜單項標題。jQuery觸摸設備下拉導航。單擊另一個菜單項時無法隱藏菜單項
這裏的腳本:
<script type="text/javascript">
$(document).ready(function(){
$(".toggle_container").addClass("hidden");
$("li#more").click(function(){
if ($(this).children("ul.toggle_container").hasClass("hidden"))
$("ul.toggle_container").toggleClass("hidden");
else{
$("ul.toggle_container").toggleClass("hidden");
}
return false;
})
$("li#search").click(function(){
if ($(this).children("div.toggle_container").hasClass("hidden"))
$("div.toggle_container").toggleClass("hidden");
else{
$("div.toggle_container").toggleClass("hidden");
}
return false;
});
$("li.trigger").click(function(){
$(this).toggleClass("clicked");
});
$(".toggle_container").click(function(e) {
e.stopPropagation();
});
$(document).click(function() {
$(".toggle_container").addClass("hidden");
$("li.trigger").removeClass("clicked");
});
});
</script>
而這裏的標記:
<nav id="navbar">
<ul>
<li id="home"><a href="/mobile/index.html"> </a></li>
<li><a href="#">Item 1</a></li>
<li id="more" class="trigger"><a href="#">More</a>
<ul class="toggle_container">
<li><a href="#">subitem1</a></li>
<li><a href="#">subitem2</a></li>
<li><a href="#">subitem3</a></li>
<li><a href="#">subitem4</a></li>
<li><a href="#">subitem5</a></li>
<li><a href="#">subitem6</a></li>
</ul>
</li>
<li id="search" class="trigger"><a href="#"> </a>
<div id="nav-search-box" class="toggle_container">
<div class="search_box">
<form class="search_form" name=gs action="http://www.google.com">
<input id=q maxlength=256 title="Enter search query" alt=Query name=q>
<input type=hidden name=btnG id=gs value=Search class=bt>
<input type=hidden name=btnG.x value=0>
<input type=hidden name=btnG.y value=0>
<input type=hidden name=oe value=UTF-8>
<input type=hidden name=ie value=UTF-8>
<input type=hidden name=entqr value=3>
<input type=hidden name=ud value=1>
<input type=hidden name=sort value=date:D:L:d1>
<input type=hidden name=output value=xml_no_dtd>
<input type=hidden name=lr value=lang_en>
<input type=hidden name=client value=google>
<input type=hidden name=proxystylesheet value=google>
<input type=hidden name=x value=0>
<input type=hidden name=y value=0>
<input type=hidden name=proxyreload value=1>
<input type=hidden name=entsp value=0>
<input type=hidden name=site value=google>
</form>
</div>
</div>
</li>
</ul>
</nav>
我也開到如何改善腳本的任何建議。感謝您的期待。
@Inrbob感謝您的建議。我其實只是找到了你的答案給另一個用戶的問題,這是類似於我的[鏈接](http://stackoverflow.com/questions/4689852/multilevel-menu-navigation-based-on-click-and-not-hover) 。這是我正在處理的頁面[鏈接](http://dl.dropbox.com/u/1343706/click-outside.html)。當我嘗試你的建議時,它刪除了單擊的類,它僅用於樣式。我認爲我真正需要做的是在選擇兄弟姐妹時將.hidden添加到兄弟姐妹,但我還沒有想到如何去做。再次感謝您看這篇文章... – user981023
很酷,希望有所幫助。我在這裏嘲笑了我想要得到的答案:http://jsfiddle.net/EjFxH/。做了一些改變,希望這可以爲你工作或幫助你一點點。請注意,我剛剛在你的末尾添加了一些CSS,而不是按塊編輯塊 – lnrbob
非常感謝Inrbob!這很完美,比以前更簡單,更清潔。我特別喜歡「不(this).removeClass」。這將在稍後派上用場。再次感謝! – user981023