单击外部时,Superfish扩展菜单不会关闭

时间:2018-09-13 07:56:40

标签: jquery html drupal menu

我有带有标记的扩展的Superfish菜单:

<button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#navbar-collapse" aria-expanded="true">
        <span class="sr-only">Toggle navigation</span>
        <span class="icon-bar"></span>
        <span class="icon-bar"></span>
        <span class="icon-bar"></span>
      </button>

和:

<div id="navbar-collapse" class="navbar-collapse collapse in" aria-expanded="true" style="">
        <div class="region region-navigation-collapsible">
<section id="block-mainmenu" class="block block-superfish block-superfishmain clearfix">...</section></div></div>

我希望在菜单外部单击时关闭该菜单。

我尝试了以下jQuery代码:

var $menu = $('.menu');
var $button = $('.navbar-toggle');

$button.click(function () {
  $menu.toggle();
});

$(document).mouseup(function (e) {
   if (!$menu.is(e.target) 
   && $menu.has(e.target).length === 0
   && !$button.is(e.target)) 
   {
     $menu.hide();
     $button.addClass("collapsed");
     $button.attr("aria-expanded","false");
     $("#navbar-collapse").attr("aria-expanded","false");
     $("#navbar-collapse").removeClass("in");
  }
 });

但是它不能正常工作。首先关闭它,然后在外面单击,然后再次单击它没有打开的按钮,它将关闭。 它是aria扩展的类和superfish.js弄乱了事情。

由于其行为要复杂得多,因此不能与其他在单击时关闭的简化菜单重复。

0 个答案:

没有答案