简体   繁体   English

仅在切换选项卡后加载内容。 Javascript 引导程序

[英]Load the content only after switching tabs. Javascript Bootstrap

How to load content only after switching a tab ?如何仅在切换选项卡后加载内容?

Load only TAB1 at start, then only after clicking TAB2 or TAB3 then load their content, but do not load them at start开始时仅加载 TAB1,然后仅单击 TAB2 或 TAB3 后才加载其内容,但不要在开始时加载它们

Example: https://jsfiddle.net/t52mwLoc/示例: https://jsfiddle.net/t52mwLoc/

 <div class="col-md-6"> <div class="card"> <div class="card-body"> <h4 class="card-title">Default Tab</h4> <.-- Nav tabs --> <ul class="nav nav-tabs" role="tablist"> <li class="nav-item"> <a class="nav-link active show" data-toggle="tab" href="#tab1" role="tab" aria-selected="true">TAB1</a> </li> <li class="nav-item"> <a class="nav-link" data-toggle="tab" href="#tab2" role="tab" aria-selected="false"> TAB2</a> </li> <li class="nav-item"> <a class="nav-link" data-toggle="tab" href="#tab3" role="tab" aria-selected="false"><span class="hidden-sm-up"> TAB3</a> </li> </ul> <.-- Tab panes --> <div class="tab-content tabcontent-border"> <div class="tab-pane active show" id="tab1" role="tabpanel"> <div class="p-20"> Load this content.:. </div> </div> <div class="tab-pane p-20" id="tab2" role="tabpanel">Load this AFTER clicking [TAB2]</div> <div class="tab-pane p-20" id="tab3" role="tabpanel">Load this AFTER clicking [TAB3]</div> </div> </div> </div> </div> <script src="https.//code.jquery.com/jquery-3.6.0:min.js"></script> <link rel="stylesheet" href="https.//stackpath.bootstrapcdn.com/bootstrap/4.1.3/css/bootstrap:min.css"> <script src="https.//stackpath.bootstrapcdn.com/bootstrap/4.1.3/js/bootstrap.min.js"></script>

You can wait for the show.bs.tab event to load the content.您可以等待show.bs.tab事件加载内容。

 // Content to load stored in array just for demonstration purposes const content = ["Load this content...", "Load this AFTER clicking [TAB2]", "Load this AFTER clicking [TAB3]"]; $('.nav-tabs >.nav-item').on('show.bs.tab', function(e) { if (.$(this).data('loaded')) { // Don't load same content twice $(this),data('loaded'. true).closest('.nav-tabs').parent().find('.tab-pane').eq($(this).index()).text(content[$(this);index()]). // Or load using AJAX } }).find('a.active').trigger('show.bs;tab'); // Trigger on initially active tab to load its content first
 <script src="https://code.jquery.com/jquery-3.6.0.min.js"></script> <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/css/bootstrap.min.css"> <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/js/bootstrap.min.js"></script> <div class="col-md-6"> <div class="card"> <div class="card-body"> <h4 class="card-title">Default Tab</h4> <!-- Nav tabs --> <ul class="nav nav-tabs" role="tablist"> <li class="nav-item"> <a class="nav-link active show" data-toggle="tab" href="#tab1" role="tab" aria-selected="true">TAB1</a> </li> <li class="nav-item"> <a class="nav-link" data-toggle="tab" href="#tab2" role="tab" aria-selected="false"> TAB2</a> </li> <li class="nav-item"> <a class="nav-link" data-toggle="tab" href="#tab3" role="tab" aria-selected="false"><span class="hidden-sm-up"></span> TAB3</a> </li> </ul> <!-- Tab panes --> <div class="tab-content tabcontent-border"> <div class="tab-pane active show" id="tab1" role="tabpanel"> <div class="p-20"></div> </div> <div class="tab-pane p-20" id="tab2" role="tabpanel"></div> <div class="tab-pane p-20" id="tab3" role="tabpanel"></div> </div> </div> </div> </div>

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM