单击菜单项本身以外的任何其他位置时,防止自举下拉关闭

时间:2017-07-12 10:47:30

标签: javascript jquery twitter-bootstrap

我需要在子项处于活动状态时打开子菜单(如用户在该页面上时)。由此管理过这样做:

// To open active submenu on load
jQuery('.keep-open').find('.current-menu-item').closest('.current-menu-parent').children('.dropdown-toggle').trigger('click');

但在点击任何地方时,菜单会关闭。除非特别点击,否则它需要保持打开状态。只有在外面点击时才设法阻止它关闭:

// To prevent submenu from being closed on outside click
jQuery('.current-menu-parent').on('hide.bs.dropdown', function() {
  return false;
});

但是,当然,即使单击菜单本身,这似乎也会阻止它关闭。如何将其指定为仅在单击该菜单项时关闭?

我找到的最近参考但是thisthis,但到目前为止还无法掌握如何做到这一点。这是通过wp_bootstrap_navwalker在WordPress网站菜单上。

Jsfiddle here

1 个答案:

答案 0 :(得分:0)

如果您只想在单击该菜单时关闭,只需添加此代码

// Hide dropdown when click menu
jQuery('.current-menu-parent').bind('click', function() {
        $(this).find('ul').fadeOut();
});

Demo here

或者您想要在单击该菜单时再次显示菜单项:

// toggle dropdown when click menu
jQuery('.current-menu-parent').bind('click', function() {
        $(this).find('ul').fadeToggle();
});

Demo here