tim*_*son 4 html javascript jquery twitter-bootstrap twitter-bootstrap-3
我正在尝试制作一个带有标签的下拉菜单.问题是单击选项卡时关闭下拉列表.请参阅此演示:http://jsfiddle.net/timrpeterson/pv2Lc/2/.(代码转载如下).
所引用的stopPropagation()关于标签锚点的建议似乎没有帮助.有没有更好的办法?
<script src='http://netdna.bootstrapcdn.com/bootstrap/3.1.0/js/bootstrap.min.js'></script>
<link href='http://netdna.bootstrapcdn.com/bootstrap/3.1.0/css/bootstrap.min.css' rel="stylesheet" type="text/css"/>
<div class="dropdown">
<a id="dLabel" role="button" data-toggle="dropdown" data-target="#" href="/page.html">
Dropdown <span class="caret"></span>
</a>
<ul class="dropdown-menu" role="menu" aria-labelledby="dLabel">
<ul class="nav nav-tabs">
<li class="active"><a href="#home" data-toggle="tab">Home</a> </li>
<li><a href="#profile" data-toggle="tab">Profile</a></li>
<li><a href="#messages" data-toggle="tab">Messages</a></li>
</ul>
<!-- Tab panes -->
<div class="tab-content">
<div class="tab-pane active" id="home">HOME asdfasdfsda</div>
<div class="tab-pane" id="profile">PROFILE asdfafas</div>
<div class="tab-pane" id="messages">MESSAGES asdfdas</div>
</div>
</ul>
</div>
Run Code Online (Sandbox Code Playgroud)
gpg*_*kko 11
引用的建议不起作用,因为.tab('show')应该在实际的选项卡(即链接)而不是选项卡窗格上调用该方法.
所以代码应该是:
$('.dropdown-menu a[data-toggle="tab"]').click(function (e) {
e.stopPropagation()
$(this).tab('show')
})
Run Code Online (Sandbox Code Playgroud)
这是一个更新的小提琴:http://jsfiddle.net/pv2Lc/6/
使用特定的引导事件:(在hide.bs.dropdown下拉列表即将关闭时触发)允许您通过调用取消"隐藏"操作e.preventDefault().(此处为doc,scrolldown组件的特定引导事件列表)
您可以在用户单击选项卡时激活特殊标志,并hide.bs.dropdown在下拉列表中检查事件中的该标志:
$('#myTabs').on('click', '.nav-tabs a', function(){
// set a special class on the '.dropdown' element
$(this).closest('.dropdown').addClass('dontClose');
})
$('#myDropDown').on('hide.bs.dropdown', function(e) {
if ( $(this).hasClass('dontClose') ){
e.preventDefault();
}
$(this).removeClass('dontClose');
});
Run Code Online (Sandbox Code Playgroud)
小提琴
(我在你的例子中添加了html id,根据你的需要改变了选择器)
| 归档时间: |
|
| 查看次数: |
12158 次 |
| 最近记录: |