[英]Jquery not working to hide and show div until Bootstrap tab clicked
I have 2 different divs that need to appear depending on which tab is active. 我需要显示2个不同的div,具体取决于哪个选项卡处于活动状态。
If tab "#myTab class overview" is active then the "rental div" should show. 如果选项卡“#myTab类概述”处于活动状态,则应显示“rental div”。 If "#myTab class overview" is not active them the "homeo div" should show. 如果“#myTab类概述”未激活,则应显示“homeo div”。
My function does not work on page load, on page load both divs appear. 我的功能在页面加载时不起作用,在页面加载时,两个div都会出现。 If i click either tab then only does my function work. 如果我单击任一选项卡,那么只有我的功能工作。
Do you know how to get my function to be working on page load. 你知道如何使我的功能在页面加载上工作。
jQuery(document).ready(function () { jQuery('a[data-toggle="tab"]').on('shown.bs.tab', function (e) { if ($("#myTab")[0].className=='overview active') jQuery('#rental').show(), jQuery('#homeo').hide(); else jQuery('#rental').hide(), jQuery('#homeo').show(); }); })
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <div id="rental"> <a href="" target="_blank" class="btn btn-info btn-lg blue" role="button">DOWNLOAD APPLICATION</a> </div> <div id="homeo"> <a href="" target="_blank" class="btn btn-info btn-lg blue" role="button">Test</a> </div> <ul class="nav nav-pills"> <li id="myTab" class="overview active"><a data-toggle="tab" href="#home">RENTAL</a></li> <li><a data-toggle="tab" href="#homeowner">HOMEOWNER</a></li> </ul>
Why not use CSS or style attribute to hide the element on pageload. 为什么不使用CSS或style属性来隐藏pageload上的元素。 Suppose you want to only show rental at page load 假设您只想在页面加载时显示租借
<div id="homeo" style="display:none;">
<a href="" target="_blank" class="btn btn-info btn-lg blue" role="button">Test</a>
</div>
Or with CSS 或者使用CSS
#homeo {
display: none;
}
.className
is native javascript. .className
是原生javascript。 jQuery objects don't have this property. jQuery对象没有此属性。
You want to use $("#myTab")[0].hasClass('overview')
你想使用$("#myTab")[0].hasClass('overview')
You need to call your hide/show code on page load alongwith tab click as 您需要在页面加载时调用隐藏/显示代码以及选项卡单击为
jQuery(document).ready(function () {
if($('#myTab').hasClass('overview active'))
{
jQuery('#rental').show(), jQuery('#homeo').hide();
}else
{
jQuery('#rental').hide(), jQuery('#homeo').show();
}
jQuery('a[data-toggle="tab"]').on('shown.bs.tab', function (e) {
if ($("#myTab")[0].className=='overview active')
jQuery('#rental').show(), jQuery('#homeo').hide();
else
jQuery('#rental').hide(), jQuery('#homeo').show();
});
})
Here is with demo 这是演示
https://jsfiddle.net/jalayoza/cnsLfbza/ https://jsfiddle.net/jalayoza/cnsLfbza/
jQuery(document).ready(function () {
if($('#myTab').hasClass('overview active'))
{
jQuery('#rental').show(), jQuery('#homeo').hide();
}else
{
jQuery('#rental').hide(), jQuery('#homeo').show();
}
jQuery('a[data-toggle="tab"]').on('click', function (e) {
if ($("#myTab")[0].className=='overview active')
jQuery('#rental').show(), jQuery('#homeo').hide();
else
jQuery('#rental').hide(), jQuery('#homeo').show();
});
})
<div id="rental">
<a href="" target="_blank" class="btn btn-info btn-lg blue" role="button">DOWNLOAD APPLICATION</a>
</div>
<div id="homeo">
<a href="" target="_blank" class="btn btn-info btn-lg blue" role="button">Test</a>
</div>
<ul class="nav nav-pills">
<li id="myTab" class="overview active"><a data-toggle="tab" href="#home">RENTAL</a></li>
<li><a data-toggle="tab" href="#homeowner">HOMEOWNER</a></li>
</ul>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.