javascript - 移动触摸上的 Bootstrap 下拉问题

标签 javascript jquery twitter-bootstrap mobile

我在 Bootstrap 下拉资源上创建了一个移动菜单。

它必须以这种方式工作:当您单击汉堡菜单图标时,它会打开,如果您单击关闭图标或菜单项之外,它会关闭。

在桌面上,使用鼠标光标可以正常工作,但在移动设备上,当您单击菜单项时,触摸菜单会自动关闭。

按照下面的演示进行操作: http://jsfiddle.net/UNs9J/6344/

我的脚本:

// Insert class on the body when mobile menu is opened 

$(function() {
  $('.no-touch .main-header__nav .dropdown.mmenu').on('click', function(){

    if ($(this).hasClass("open")) {
      $('body').removeClass('mmenu-opened');
    } else {

      $('body').addClass('mmenu-opened');
    }

  });
});

$(function() {
  $('.touch .main-header__nav .dropdown.mmenu').on('tap', function(){

    if ($(this).hasClass("open")) {
      $('body').removeClass('mmenu-opened');
    } else {

      $('body').addClass('mmenu-opened');
    }

  });
});

$(function() {
  $('body').on('click', function(){

    if ($('.main-header__nav .mmenu').hasClass("open")) {
      $('body').removeClass('mmenu-opened');
    }

  });
});

我不知道该怎么办了。如果有人帮助我,我将非常感激。

提前致谢。

最佳答案

如果我理解您的问题 - 您不想在选择项目时关闭菜单吗?如果是这样,我认为你只需要停止该事件的传播。这是modified js fiddle .

这是经过更改的 JS 代码...

$(function() {
  $('.no-touch .main-header__nav .dropdown.mmenu').on('click', function(event) {

    if ($(this).hasClass("open")) {
      $('body').removeClass('mmenu-opened');
      event.stopPropagation();
    } else {

      $('body').addClass('mmenu-opened');
    }

  });
});

$(function() {
  $('.touch .main-header__nav .dropdown.mmenu').on('tap', function(event) {

    if ($(this).hasClass("open")) {
      $('body').removeClass('mmenu-opened');
      event.stopPropagation();
    } else {

      $('body').addClass('mmenu-opened');
    }

  });
});

注意,我将 event 变量传递给事件处理程序,然后在菜单打开时调用 stopPropagation()。这是您正在寻找的行为吗?

关于javascript - 移动触摸上的 Bootstrap 下拉问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34858491/

相关文章:

javascript - Rails Bootstrap 轮播

jquery - Autocomplete.js 不适用于键盘向上和向下箭头键

javascript - 更改div内容onclick

javascript - 如何使用 PrototypeJS 检查一个元素是否在另一个元素之后?

javascript - 快速且开放的声音控制 (OSC) 通信

javascript - AJAX 刷新延迟/不一致

javascript - 具有相似功能时简化 Javascript

html - Twitter Bootstrap 选项卡不工作 : when I click on them nothing happens

javascript - React 创建未知大小的 Bootstrap 网格

javascript - 如何使用 jquery 或 javascript 在 foreach 情况下显示和隐藏 Onclick 按钮?