如果没有单击Bootstrap选项卡,如何在jQuery中进行检查

How to check in jQuery if a Bootstrap tab isn't clicked?

本文关键字:jQuery 进行检查 单击 Bootstrap 选项 如果没有      更新时间:2023-09-26

我在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>

我怎样才能使它,当没有选项卡被点击一个消息'请选择一个选项卡'显示?

我在标签下面做了一个<p id="message"></p>,我只需要在没有标签被点击时插入消息,当标签被点击时删除消息,但我不知道如何检查。

对于Bootstrap选项卡,您还需要内容容器。在本例中,我将把消息div放入tab-contentdiv:

<!-- 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;
}

.tab-pane.active ~ #message {
    display: none;
}
<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>

演示:

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

@dfsq发布的解决方案比下面的更优雅。但是,如果您的情况不允许您更改HTML标记,这里有另一种方法。

var selectedTab = $('.nav-tabs li.active');
if(selectedTab.length === 0){
    $('#message').html('Please select tab');
}

引导程序有'show .bs. 'Tab '事件,以便在单击Tab时捕获。您可以如下所示使用它。

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

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();
    }
}