2014-10-19 120 views
0

我正在使用SlickNav jQuery plugin,但似乎自动关闭模糊或失去焦点菜单默认情况下未设置,并且没有设置。Slicknav:外部点击时如何关闭菜单

我认为这只是一个简单的调用是这样的:

<script> 
    $(document).ready(function() { 
    //close menu on lost focus 
    $('.js .slicknav_menu').focusout(function(event){ 
    $(this).slicknav('close'); 
    }); 
    }); 
</script> 

但是,这并不做任何事情。点击菜单外部时如何关闭菜单?

+0

请您分享一下您的完整代码吗? – Ashish 2014-10-19 22:18:26

+0

我不知道你需要什么其他的代码,但是如果你不熟悉它的话,我会给这个插件添加一个链接。 – zoltar 2014-10-19 22:30:06

+0

此解决方案适用于我:http://stackoverflow.com/questions/29658550/make-slicknav-menu-close-when-outside-click-on-ios-devices/29677052#29677052 – 2015-04-18 07:10:34

回答

0

我提到了你在你的问题中提到的网站。尝试了网站中给出的第一个例子。 (HTML哪个代码下文给出)

HTML -

<ul id="menu"> 
    <li><a class="scroll" href="#features">Features</a></li> 
    <li><a class="scroll" href="#usage">Usage Instructions</a></li> 
    <li><a class="scroll" href="#examples">Examples</a></li> 
    <li><a href="http://github.com">View on Github</a></li> 
</ul> 

我看到菜单并没有对失去焦点事件关闭默认情况下。 下面的代码工作实现相同。

$(document).ready(function() { 
    //close menu on lost focus 
    $('.slicknav_menu').focusout(function(event){ 
     $('#menu').slicknav('close'); //Here 'menu' is the id of ul. 
    }); 
    }); 
+0

这通常是我以前并且它仍然不起作用。这是我现在的,源文件位置检查罚款: http://codepen.io/anon/pen/wukdv – zoltar 2014-10-20 05:28:04

0

我用过这样的东西。
这也适用于手机。

$(window).on("touchstart", function(e) { 
    var container = $("#menu"); 
if (!container.is(e.target) // if the target of the click isn't the container... 
    && container.has(e.target).length === 0) // ... nor a descendant of the container 
{ 
    $('#menu').slicknav('close'); 
} 
});