我正在尝试将复选框放入bootstrap下拉列表中。我不希望下拉列表在点击时关闭,但如果他们点击网站上的其他位置,我仍然希望它关闭。我仍然想在下拉列表中点击其他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');
}
});
});
答案 0 :(得分:6)
我终于明白了。代码如下:
$(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行添加了缺少的分号。
答案 1 :(得分:-1)
我必须实现相同的目的,并写了一个更简单的东西:
$('.dropdown.keep-open').one({
'mouseenter': () => { $(this).data('closable', false); },
'mouseleave': () => { $(this).data('closable', true); },
'hide.bs.dropdown': () => !!$(this).data('closable')
});
我希望它可以帮助某人。顺便说一句,这些都是非常肮脏的骇客,Bootstrap确实可以为此提供选择。