Bootstrap选项卡内容slideDown / slideUp不起作用

时间:2017-10-26 06:40:55

标签: javascript jquery css twitter-bootstrap tabs

我正在使用bootstrap alpha选项卡,实际上我的代码很大所以不能真正粘贴所有这些,但我提供的示例代码。 我想要点击slideUp / SlideDown上的标签内容。但是它不会发生它只是做普通的标签选项,我想要幻灯片显示标签内容点击选项卡菜单和再次点击该菜单时的slideUp。

$(document).on('click', '.nav-link.active', function() {
  var href = $(this).attr('href').substring(1);
  $(this).removeClass('active');
  $('.tab-pane[id="' + href + '"]').removeClass('active');
  $('.tab-content').slideDown(600);
});
.tab-pane {
  background-color: red;
  padding-top: 50px;
  padding-bottom: 50px;
}

.tab-content {
  background-color: #ccc;
  padding-top: 10px;
  padding-bottom: 10px;
}
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-alpha.6/css/bootstrap.min.css" integrity="sha384-rwoIResjU2yc3z8GV/NPeZWAv56rSmLldC3R/AZzGRnGxQQKnKkoFVhFQhNUwEyJ" crossorigin="anonymous">
<script src="https://code.jquery.com/jquery-3.1.1.slim.min.js" integrity="sha384-A7FZj7v+d/sdmMqp/nOQwliLvUsJfDHW+k9Omg/a/EheAdgtzNs3hpfag6Ed950n" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/tether/1.4.0/js/tether.min.js" integrity="sha384-DztdAPBWPRXSA/3eYEEUWrWCy7G5KFbe8fFjk5JAIxUYHKkDx6Qin1DkWx51bBrb" crossorigin="anonymous"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-alpha.6/js/bootstrap.min.js" integrity="sha384-vBWWzlZJ8ea9aCX4pEW3rVHjgjt7zpkNpZk+02D9phzyeVkE+jo0ieGizqPLForn" crossorigin="anonymous"></script>
<ul class="nav" id="myTab" role="tablist">
  <li class="nav-item">
    <a class="nav-link" data-toggle="tab" href="#home" role="tab" aria-controls="home">Home</a>
  </li>
  <li class="nav-item">
    <a class="nav-link" data-toggle="tab" href="#profile" role="tab" aria-controls="profile">Profile</a>
  </li>
  <li class="nav-item">
    <a class="nav-link" data-toggle="tab" href="#messages" role="tab" aria-controls="messages">Messages</a>
  </li>
  <li class="nav-item">
    <a class="nav-link" data-toggle="tab" href="#settings" role="tab" aria-controls="settings">Settings</a>
  </li>
</ul>

<div class="tab-content">
  <div class="tab-pane" id="home" role="tabpanel">Good</div>
  <div class="tab-pane" id="profile" role="tabpanel">Best</div>
  <div class="tab-pane" id="messages" role="tabpanel">Poor</div>
  <div class="tab-pane" id="settings" role="tabpanel">Ugly</div>
</div>

请帮帮我。

DEMO

2 个答案:

答案 0 :(得分:0)

运行您的演示并查看控制台的日志。

  

未捕获的TypeError:$(...)。slideDown不是函数

     HTMLAnchorElement上的

。 ((指数):76)

     

在HTMLDocument.dispatch(VM106 jquery-3.1.1.slim.min.js:3)

     

在HTMLDocument.q.handle(VM106 jquery-3.1.1.slim.min.js:3)

由于SlideDown功能出现错误,因此无效。 看来你所包含的jQuery库文件没有这个功能。

第1步:jquery.slim

你包括瘦身版的jQu​​ery。 根据消息来源:

  

与包含ajax和的jQuery的常规版本一起   效果模块,我们发布了一个“瘦”版本,排除这些   模块。总而言之,它排除了ajax,效果和当前   弃用的代码。

因此,例如,此版本中不提供slideDown。 您应该使用常规版本(如果您愿意,可以缩小,但不能使用缩小版本。)

https://code.jquery.com/

答案 1 :(得分:0)

请检查您包含的jQuery版本,slideDown()未定义。我会尝试包含其他内容,例如来自Google图书馆:jQuery

然后:slideDown()无法使用可见元素。所以你必须改变你的代码:

$(document).on('click','.nav-link.active', function(){
    var href = $(this).attr('href').substring(1);
     $(this).removeClass('active');
     $('.tab-pane[id="'+ href +'"]').removeClass('active'); 
     $('.tab-content').hide().slideDown(600); 
});

...或display: none使用css隐藏元素,然后使用slideDown函数显示它。