[英]Bootstrap tab content slideDown/slideUp not working
我正在使用bootstrap alpha选项卡,实际上我的代码很大,所以不能真正将所有代码粘贴到这里,但是我给出的示例代码很少。 我想要单击slideUp / SlideDown上的选项卡内容,但是它不是在执行普通选项卡选项时发生的,我想要单击选项卡菜单上的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>
请帮我。
运行演示并查看控制台的日志。
未捕获的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
您包括的是jQuery的苗条版本。 根据消息来源:
连同包含ajax和effects模块的jQuery常规版本一起,我们发布了排除这些模块的“ slim”版本。 总而言之,它不包括ajax,效果和当前不建议使用的代码。
因此,例如,slideDown在此版本中不可用。 您应该使用常规版本(如果需要,可以使用最小版本,但不要使用苗条版本)。
请检查您包含的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
在使用slideDown函数使其可见之前, display: none
CSS可以隐藏您的元素。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.