1

SlickNav jQuery プラグインを使用していますが、ぼかしまたはフォーカスが失われたときにメニューを自動的に閉じることがデフォルトで設定されておらず、その設定がないようです。

次のような単純な呼び出しだと思いました。

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

しかし、これは何もしません。メニューの外側をクリックしたときにメニューを閉じるにはどうすればよいですか?

4

2 に答える 2

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.
    });  
  });
于 2014-10-19T23:42:36.713 に答える
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');
}
});
于 2016-02-04T14:57:52.540 に答える