【问题标题】:How to disable Escape Key for Twitter Bootstrap Dropdowns?如何禁用 Twitter Bootstrap 下拉菜单的转义键?
【发布时间】:2017-06-05 09:39:35
【问题描述】:

我不希望在按下 ESC 键时关闭 Bootstrap 下拉菜单。

我尝试了以下sn-p但没有成功:

$(document).on('shown.bs.dropdown', function (e) {
    $(document).on("keydown", $button, function (e) {
        var code = e.keyCode || e.which;
        if (code === 27) {
            e.preventDefault();
        }
    });
});

我找到了一个similar Question,它是关于禁用引导模式的密钥的。解决方案似乎是data-keyboard="false"。 Dropdowns有类似的解决方案吗?

编辑:JSFiddle

【问题讨论】:

  • 防止默认后添加return false;。那么它应该可以工作了。
  • 谢谢,但不幸的是,这也不起作用。 keydown 事件甚至似乎都没有被触发。
  • 您能向我们展示您的 HTML 吗?因此,我们可以调试您的 js 代码并找到解决方案。

标签: javascript twitter-bootstrap drop-down-menu dropdown keyevent


【解决方案1】:

我使用以下:

$('#dropdown_id').on('hide.bs.dropdown', function (e) {
  if ($(this).hasClass('keepopen')) {
      $(this).removeClass('keepopen')
      e.preventDefault();
      e.stopPropagation();
      return false;
  }
});

当您希望下拉菜单关闭并想要阻止它时,添加类“keepopen”。在我的情况下,它是在下拉列表中输入输入元素:

$('#input_id').on('keydown', function(e){
  if (e.which == 27) {
    $('#dropdown_id').addClass('keepopen');
  }
});

【讨论】:

    猜你喜欢
    • 2012-03-29
    • 2012-02-21
    • 2023-03-03
    • 1970-01-01
    • 2012-04-03
    • 2012-04-09
    • 1970-01-01
    • 2012-03-09
    • 2011-12-27
    相关资源
    最近更新 更多