Twitter bootstrap 防止引导下拉列表在单击时关闭

Twitter bootstrap 防止引导下拉列表在单击时关闭,twitter-bootstrap,drop-down-menu,Twitter Bootstrap,Drop Down Menu,我正在尝试将复选框放在引导下拉列表中。我不想在点击时关闭下拉列表,但如果他们点击网站上的其他位置,我仍然希望它关闭。我仍然希望在下拉列表中单击时触发其他javascript操作。我有一个与我想要的正好相反的例子。此示例在单击时关闭下拉列表,但在从下拉区域外部单击时将其保持打开状态 $(function () { $('.dropdown.keep-open').on({ "shown.bs.dropdown": function() { $

我正在尝试将复选框放在引导下拉列表中。我不想在点击时关闭下拉列表,但如果他们点击网站上的其他位置,我仍然希望它关闭。我仍然希望在下拉列表中单击时触发其他javascript操作。我有一个与我想要的正好相反的例子。此示例在单击时关闭下拉列表,但在从下拉区域外部单击时将其保持打开状态

 $(function () {
     $('.dropdown.keep-open').on({
         "shown.bs.dropdown": function() {
             $(this).data('closable', false);
         },
         "click": function() {
             $(this).data('closable', true);
         },
         "hide.bs.dropdown": function() {
             return $(this).data('closable');
         }
     });
 });   

我终于拿到了。代码如下:

$(function() {
    $('.dropdown.keep-open').on({
        "shown.bs.dropdown": function() {
            $(this).data('closable', false);
        },
        "click": function(event) {
            $(this).data('closable', false);
        },
        "hide.bs.dropdown": function(event) {
            temp = $(this).data('closable');
            $(this).data('closable', true);
            return temp;
        }
    });
});

编辑:在第11行添加了缺少的分号。

我必须实现同样的目标,并编写了一个更简单的分号:

$('.dropdown.keep-open').one({
  'mouseenter': () => { $(this).data('closable', false); },
  'mouseleave': () => { $(this).data('closable', true); },
  'hide.bs.dropdown': () => !!$(this).data('closable')
});

我希望它能帮助别人。顺便说一句,这些都是非常肮脏的黑客行为,Bootstrap可能真的有这样的选择。

谢谢我所需要的。