【问题标题】:Jquery - .on("<auto close>")Jquery - .on("<自动关闭>")
【发布时间】:2017-02-02 23:11:14
【问题描述】:

如果页面标题可见并且单击了下拉菜单按钮,我有此代码将隐藏页面标题。

$('.site-overlay-toggle .btn').on("click", function(){

    if ( $(".page-title").is(':visible') ) {
       $( ".page-title" ).hide();
    } else {
       $( ".page-title" ).show();   
    }

});

只要下拉菜单手动单击打开并单击关闭,此功能就有效。如果我单击同一页面菜单中的锚链接,页面将向下滚动到正确的部分,并且下拉菜单将自动关闭。但是,这不会触发此代码。

有没有办法检测菜单是否自动关闭?

【问题讨论】:

    标签: javascript jquery html


    【解决方案1】:

    您可以在事件中使用 jQuery $('.site-overlay-toggle .btn').trigger('click') 作为锚点。

    【讨论】:

      【解决方案2】:

      如果你有这样的菜单

      <button type="btn btn-navbar" class="navbar-toggle collapsed" data-toggle="collapse" data-target=".nav-collapse" aria-expanded="false"> <span class="icon-bar"></span>
      

      这是关闭菜单时代码的样子。

      但如果菜单打开,代码如下所示

      <button type="btn btn-navbar" class="navbar-toggle" data-toggle="collapse" data-target=".nav-collapse" aria-expanded="true"> <span class="icon-bar"></span>
      

      因此,如果菜单关闭,您可以使用函数 .is("collapsed") 或 .hasClass("collapsed") 获取 true,如果未关闭则使用 flase,或者您可以获得属性 aria-expanded 的状态。

      http://api.jquery.com/is/

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-06-17
        • 2021-12-30
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-06-02
        • 2012-06-25
        • 1970-01-01
        相关资源
        最近更新 更多