Slicknav:点击外面时如何关闭菜单

时间:2014-10-19 22:02:06

标签: jquery mobile slicknav

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

我认为这只是一个简单的电话:

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

但这没有做任何事情。单击菜单外部时如何关闭菜单?

2 个答案:

答案 0 :(得分:1)

我提到了您在问题中提到的网站。试过网站上给出的第一个例子。 (其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.
    });  
  });

答案 1 :(得分: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');
}
});