2015-08-16 95 views
1

我的手机模式菜单出现问题。 onClick它fadesOut。我想保留这个设置,但是,当我点击菜单的下拉菜单时,我希望它什么也不做。 这里是链接:http://jsfiddle.net/zLLzrs6b/3/ 感谢您的帮助!手机中的下拉菜单问题

也是我的html:

<nav id="nav-wrap">   
<a class="mobile-btn" href="#nav-wrap" title="Show navigation">Show Menu</a> 
<a class="mobile-btn" href="#" title="Hide navigation">Hide Menu</a>   

<ul id="nav" class="nav"> 
<li><a class="smoothscroll mobile" href="#about">about</a></li> 
<li><a class="smoothscroll mobile" href="#documents">blog</a></li> 

<li class="nav-item"><a href="#">dropdown</a> 
<ul class="langop"> 
<li><a href="#">otion 1</a></li> 
<li><a href="#">otion 2</a></li> 
</ul> 
</li> 

</ul> 
</nav> 

CSS:

.langop 
{ 
display:none; 
position: relative; 
width:auto; 
} 

.nav-item:hover .langop { 
display: block; 
} 

的java:

var toggle_button = $("<a>", {       
        id: "toggle-btn", 
        html : "Menu", 
        title: "Menu", 
        href : "#" } 
        ); 
var nav_wrap = $('nav#nav-wrap') 
var nav = $("ul#nav"); 


nav_wrap.find('a.mobile-btn').remove(); 
nav_wrap.prepend(toggle_button); 

toggle_button.on("click", function(e) { 
e.preventDefault(); 
    nav.slideToggle("fast");  
}); 

if (toggle_button.is(':visible')) nav.addClass('mobile'); 
$(window).resize(function(){ 
if (toggle_button.is(':visible')) nav.addClass('mobile'); 
    else nav.removeClass('mobile'); 
}); 

$('ul#nav li a').on("click", function(){  
if (nav.hasClass('mobile')) nav.fadeOut('fast');  
}); 
+1

变量'nav'在哪里设置?你确定它有一类“移动”?你说它没有淡出。那么发生了什么?你是否在控制台中遇到任何异常? – yts

回答

0

你有几个问题在这里,但重要的是:

  1. 没有设置“nav”变量。我认为你使用这个“nav”变量混淆了$()选择器。

  2. 你的锚元素没有“移动”类。

你可以简单的通过指定在选择锚类权避免if条款:$(a.mobile)你可以在这里看到它的一个工作版本:http://jsfiddle.net/zLLzrs6b/我已经添加了“移动”类的主持人和清洗了解jQuery。

+0

你好,我在上面添加了我的整个代码。我想要的是,当点击语言下拉菜单时,菜单保持不变并且不会淡出。你可以看看吗?我试图添加你的代码,但它没有做到这一点。谢谢 – maks

+0

我的所有意见仍然适用。你有未定义的变量和糟糕的标记。 – jmargolisvt