首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >带有选项卡的Twitter Bootstrap下拉菜单

带有选项卡的Twitter Bootstrap下拉菜单
EN

Stack Overflow用户
提问于 2014-02-03 18:54:58
回答 2查看 14.1K关注 0票数 4

我正在尝试制作一个包含标签的下拉菜单。问题是,当我单击选项卡时,下拉菜单就会关闭。请看这个演示:http://jsfiddle.net/timrpeterson/pv2Lc/2/。(下面重现的代码)。

选项卡锚上的cited suggestion to stopPropagation()似乎也没有帮助。有没有更好的方法?

代码语言:javascript
复制
<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>
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-02-03 19:15:33

使用特定的引导事件:hide.bs.dropdown (在dropdown即将关闭时触发)允许您通过调用e.preventDefault()来取消“隐藏”操作。(doc herescrolldown组件的特定引导事件列表)

您可以在用户单击选项卡时激活一个特殊标志,并在下拉列表中的hide.bs.dropdown事件中选中该标志:

代码语言:javascript
复制
$('#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');
});

(我在示例中添加了html id,根据需要更改选择器)

票数 5
EN

Stack Overflow用户

发布于 2014-02-03 19:14:23

引用的建议不起作用,因为.tab('show')方法应该在实际选项卡(即链接)上调用,而不是在选项卡窗格上调用。

所以代码应该是:

代码语言:javascript
复制
$('.dropdown-menu a[data-toggle="tab"]').click(function (e) {
    e.stopPropagation()        
    $(this).tab('show')
})

这是一个更新的提琴:http://jsfiddle.net/pv2Lc/6/

票数 13
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21525440

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档