我有一个案例,需要两次点击才能关闭Bootstrap下拉列表 . 我需要在下拉菜单外发生点击时关闭,比如在另一个下拉按钮上 .
标准的select元素可能会出现同样的情况,但这是我的特殊情况 . 我已经尝试在单击各种Select2元素时调用 dropdown('close')
但没有成功 .
http://jsfiddle.net/isherwood/PwNpB/15
<div class="dropdown">
<span data-toggle="dropdown" class="btn dropdown-toggle">
Button <span class="caret pull-right"></span>
</span>
<div class="dropdown-menu">
<select id="e1">
<option value="AL">Alabama</option>
<option value="WY">Wyoming</option>
</select>
</div>
</div>
2 回答
您可以使用此解决方法:
SEE JSFIDDLE
虽然我并不熟悉twitter-bootstrap或select2(并且也不太熟悉JavaScript),但我注意到select2插入一个名为
#select2-drop-mask
的元素,该元素捕获mousedown
- 和touchstart
-events并处理select2-的关闭落下:如果我们将那些相同的事件(一个简单的
click
将不起作用)附加到document
并确保单击的元素实际上是#select2-drop-mask
(否则bootstrap-tooltips'toggle'将被调用两次),事情似乎表现得像你想要的那样to - 只要点击select2-element之外的某些东西,就会关闭twitter-bootstrap下拉列表:这是一个http://jsfiddle.net/PwNpB/3/ - 虽然这似乎有用,但对我来说仍然感觉有些肮脏,所以我希望有些人真正了解这里发生的事情以及为什么会这样 .