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

Posted

技术标签:

【中文标题】引导选项卡内容 slideDown/slideUp 不起作用【英文标题】:Bootstrap tab content slideDown/slideUp not working 【发布时间】:2018-04-07 10:19:17 【问题描述】:

我正在使用 bootstrap alpha 选项卡,实际上我的代码很大,所以无法真正粘贴所有这些,但我给出的示例代码很少。 我想要单击 slideUp / 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').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

【问题讨论】:

【参考方案1】:

请检查您包含的 jQuery 版本,slideDown() 未定义。我会尝试包含另一个,例如来自谷歌图书馆: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 函数使其可见。

【讨论】:

【参考方案2】:

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

未捕获的类型错误:$(...).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

您正在包括 jQuery 的精简版本。 根据消息来源:

与包含 ajax 和 效果模块,我们将发布一个排除这些的“精简”版本 模块。总而言之,它不包括ajax,效果,目前 不推荐使用的代码。

因此,例如,slideDown 在此版本中不可用。 您应该使用普通版本(如果您愿意,可以使用缩小版,但不要使用纤薄版)。

https://code.jquery.com/

【讨论】:

那我现在该怎么办 这是您使用的 jquery 库,我正在检查原因。 是的,我也可以看到,但无法真正弄清楚为什么:( 更新了我的答案。 它工作正常吗?因为我也更新了,但徒劳无功

以上是关于引导选项卡内容 slideDown/slideUp 不起作用的主要内容,如果未能解决你的问题,请参考以下文章

迭代rails中的引导选项卡内容

引导选项卡内容不起作用

在材质 UI 中动态更改选项卡内容

QTabView 隐藏选项卡内容但不隐藏选项卡栏

在 IE8 中将 cssPIE 用于 js 选项卡内容不呈现

jQuery动画上下滑动slideDown() slideUp() slideToggle()用法