单击时引导下拉closures
我把一个表单放在引导下拉列表中,但是当我单击表单中的任何一个字段时,下拉列表就会消失。 我有这段代码,但我不知道该把它放在哪里,以防止下拉消失。
$(function test() { // Setup drop down menu $('.dropdown-toggle').dropdown(); // Fix input element click problem $('.dropdown input, .dropdown label').click(function(e) { e.stopPropagation(); }); });
有人可以告诉我,我应该把这个? 我尝试在引导下拉,我尝试在HTML内,但它仍然无法正常工作。
只需使用这个例子。这个解决scheme适用于我。
<script type="text/javascript"> window.addEvent('domready',function() { Element.prototype.hide = function() { $(function () { // replace your tab id with myTab //<ul id="myTab" class="nav nav-tabs"> $('#myTab li:eq(1) a').tab('show'); }); }; }); </script>
希望它会有所帮助。 谢谢。
你可以一起省略掉下拉电话,引导下拉菜单没有它。 确保你正确地包装你的脚本,你可以将其包含在页面的标题或正文中,尽pipe我个人更喜欢将它放在页面的主体上。
JS
<script type="text/javascript"> $('.dropdown-menu input, .dropdown-menu label').click(function(e) { e.stopPropagation(); }); </script>
回答已经被接受的时间已经过去了,但是如果你想保持下拉的开放,如果它像一种对话,我认为最好的方式是:
$('.dropdown').dropdown().on("hide.bs.dropdown", function(e) { if ($.contains(dropdown, e.target)) { e.preventDefault(); //or return false; } });
如果你想停止只closures一些下拉菜单,而不是所有的,那么只需添加一个额外的类到你的ul块:
<ul class="dropdown-menu keep-open-on-click">
并使用此代码:
$(document).on('click', '.dropdown-menu', function(e) { if ($(this).hasClass('keep-open-on-click')) { e.stopPropagation(); } });
这适用于我(侧边栏打开一个简单的链接自举切换)
$('.dropdown').find("a").not('.dropdown-toggle').on("click",function(e){ e.stopImmediatePropagation(); });
您需要停止冒泡DOM树的事件:
$('.dropdown-menu').click(function(e) { e.stopPropagation(); });
event.stopPropagation防止事件到达最终由Bootstrap隐藏菜单处理的节点。
谢谢你的回答,我在下拉菜单下有同样的问题。 使用上述解决scheme,我也能够解决这个问题。
$('.dropdown-menu .dropdown-submenu a[data-toggle="dropdown-submenu"]').click(function (e) { e.stopPropagation(); });
放
<script type="text/javascript"> $('.dropdown-menu').click(function(e) { e.stopPropagation(); }); </script>
在原来的答案,删除所有类,只是把“。下拉菜单”类,它为我工作。 我在下拉菜单中有一个input栏。
如果您查看下拉窗口小部件的底部,您将看到:
$(document) .on('click.bs.dropdown.data-api', '.dropdown form', function(e) { e.stopPropagation() })
所以你有以下select:
- 只需用表单将您的下拉列表包装起来
- 或者您可以为.dropdown YOUR_SELECTOR的点击事件添加事件监听器
$(document) .on('click.my', '.dropdown some_selector', function(e) { e.stopPropagation() })