如果没有点击Bootstrap选项卡,如何检查jQuery?

时间:2015-08-03 07:52:43

标签: javascript jquery twitter-bootstrap

我在Bootstrap中有标签:

<ul class="nav nav-tabs" role="tablist">
  <li>tab1</li>
  <li>tab2</li>
  <li>tab3</li>
  <li>tab4</li>
  <li>tab5</li>
</ul>

<p id="message"></p>

如何制作,以便在没有点击标签时发送消息&#39;请选择一个标签&#39;显示?

我在标签下方制作了<p id="message"></p>,我只需要在没有点击标签时插入消息,并在点击标签时删除该消息,但我不确定如何检查。< / p>

4 个答案:

答案 0 :(得分:4)

对于Bootstrap选项卡,您还需要内容容器。在这种情况下,我会将消息div放入tab-content div:

<!-- Tab panes -->
<div class="tab-content">
    <div role="tabpanel" class="tab-pane" id="home">...</div>
    <div role="tabpanel" class="tab-pane" id="profile">...</div>
    <div role="tabpanel" class="tab-pane" id="messages">...</div>
    <div role="tabpanel" class="tab-pane" id="settings">...</div>
    <p id="message">Please select some tab</p>
</div>

...并使用简单的CSS规则选择任何内容时隐藏它:

.tab-pane.active ~ #message {
    display: none;
}

&#13;
&#13;
.tab-pane.active ~ #message {
    display: none;
}
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/js/bootstrap.min.js"></script>
<link data-require="bootstrap-css@*" data-semver="3.3.1" rel="stylesheet" href="//maxcdn.bootstrapcdn.com/bootstrap/3.3.1/css/bootstrap.min.css" />

<ul class="nav nav-tabs" role="tablist">
  <li role="presentation"><a href="#home" aria-controls="home" role="tab" data-toggle="tab">Home</a></li>
  <li role="presentation"><a href="#profile" aria-controls="profile" role="tab" data-toggle="tab">Profile</a></li>
  <li role="presentation"><a href="#messages" aria-controls="messages" role="tab" data-toggle="tab">Messages</a></li>
</ul>

<!-- Tab panes -->
<div class="tab-content">
  <div role="tabpanel" class="tab-pane" id="home">Home</div>
  <div role="tabpanel" class="tab-pane" id="profile">Profile</div>
  <div role="tabpanel" class="tab-pane" id="messages">Messages</div>
  <p id="message">Please select some tab</p>
</div>
&#13;
&#13;
&#13;

演示: http://plnkr.co/edit/1VaF3NoTRK4X2pnd651G?p=info

答案 1 :(得分:0)

与以下相比,@dfsq发布的解决方案更加优雅。但是,如果您的情况不允许您更改HTML标记,则可以采用另一种方法。

var selectedTab = $('.nav-tabs li.active');

if(selectedTab.length === 0){
    $('#message').html('Please select tab');
}

答案 2 :(得分:0)

引导程序有'shown.bs.tab'事件来捕获是否单击了选项卡。你可以使用它,如下所示。

$(document).on( 'shown.bs.tab', 'a[data-toggle="tab"]', function (e) {
   console.log(e.target) // activated tab
})

答案 3 :(得分:0)

BootStrap单击选项卡时,相应的li元素将获得active个类,而其他li标记在点击之前不会拥有此类。

您可以使用以下代码检查是否单击了任何标签:

$(function(){
    CheckTabClick()
})

$(".nav-tabs li").click(function(){
    CheckTabClick()
})

function CheckTabClick(){
  var tab_clicked = $(".nav-tabs li.active")

  if (tab_clicked.length == 0){
      $("#message").show();
  }
    else{
     $("#message").hide();
    }
}