如何在特定选项卡处于活动状态时打开 Bootstrap 模式
How to open a Bootstrap modal with a specific tab active
我正在尝试打开 bootstrap 模式中的选项卡,具体取决于 link 被点击的内容。无论我尝试过什么,它只会在第一个选项卡上打开。两个link如下:
<a href="#tab-mileage" data-toggle="modal" data-target="#buyers-report-modal" >Mileage</a>
<a href="#tab-wrong-vehicle" data-toggle="modal" data-target="#buyers-report-modal">Wrong vehicle?</a>
模态框的标记在这里:
<div class="modal" id="buyers-report-modal" tabindex="-1" role="dialog" aria-hidden="true">
<div class="modal-dialog modal-lg modal-offset-top">
<div class="modal-content">
<div class="modal-body">
<div class="sd-tabs sd-tab-interaction">
<div class="row">
<ul class="nav nav-tabs col-md-3 custom-bullet">
<li class="active"><a data-toggle="tab" href="#tab-wrong-vehicle"> Wrong Vehicle?</a></li>
<li><a data-toggle="tab" href="#tab-mileage"> Mileage</a></li>
</ul>
<div class="tab-content col-md-9">
<form id="tab-wrong-vehicle" class="tab-pane active" action="" method="post"> <!-- Wrong Vehicle? -->
<h3 class="tab-title">Tab 1</h3>
</form> <!-- Wrong Vehicle? -->
<form id="tab-mileage" class="tab-pane"> <!-- Mileage -->
<h2 class="tab-title-resp hidden-md hidden-lg"> Mileage</h2>
<h3 class="tab-title">Tab 2</h3>
</form> <!-- Mileage -->
</div>
</div>
</div>
</div>
</div>
我需要在单击的 link 上打开模式,例如,如果我单击第二个 link,它将在模式中打开第二个选项卡。任何帮助将不胜感激,我无法在任何地方找到解决方案。
我在代码中留下了原始 ID,以防我在替换它们时出错。
您需要定位标签的锚点和 运行 $.tab('show')
函数。
http://getbootstrap.com/javascript/#tabs
既然您知道选项卡锚点具有 data-toggle=tab 和 href=id 属性,我们可以使用 link 中的 href 传递给选项卡的选择器。
$('a[data-toggle=modal][data-target]').click(function () {
var target = $(this).attr('href');
$('a[data-toggle=tab][href=' + target + ']').tab('show');
})
利用 shown.bs.modal
活动。该事件包含有关单击 <a>
的 href
的信息,然后您可以根据该信息更改选项卡:
$("#buyers-report-modal").on('shown.bs.modal', function(e) {
var tab = e.relatedTarget.hash;
$('.nav-tabs a[href="'+tab+'"]').tab('show')
})
您的代码有效 -> http://jsfiddle.net/pvo1sny8/
我在 <a>
元素中添加了 class .modal-toggle
来切换模式。此外,我添加了一些额外的功能,这些功能在点击时触发并获取点击元素的 href
,之后我在 [=16] 内的 <a>
元素上使用 tab("show")
=] 匹配 href
。 (我在你的模式中添加了一个关闭按钮,所以更容易测试演示)
$('.modal-toggle').click(function(e){
var tab = e.target.hash;
$('li > a[href="' + tab + '"]').tab("show");
});
我正在尝试打开 bootstrap 模式中的选项卡,具体取决于 link 被点击的内容。无论我尝试过什么,它只会在第一个选项卡上打开。两个link如下:
<a href="#tab-mileage" data-toggle="modal" data-target="#buyers-report-modal" >Mileage</a>
<a href="#tab-wrong-vehicle" data-toggle="modal" data-target="#buyers-report-modal">Wrong vehicle?</a>
模态框的标记在这里:
<div class="modal" id="buyers-report-modal" tabindex="-1" role="dialog" aria-hidden="true">
<div class="modal-dialog modal-lg modal-offset-top">
<div class="modal-content">
<div class="modal-body">
<div class="sd-tabs sd-tab-interaction">
<div class="row">
<ul class="nav nav-tabs col-md-3 custom-bullet">
<li class="active"><a data-toggle="tab" href="#tab-wrong-vehicle"> Wrong Vehicle?</a></li>
<li><a data-toggle="tab" href="#tab-mileage"> Mileage</a></li>
</ul>
<div class="tab-content col-md-9">
<form id="tab-wrong-vehicle" class="tab-pane active" action="" method="post"> <!-- Wrong Vehicle? -->
<h3 class="tab-title">Tab 1</h3>
</form> <!-- Wrong Vehicle? -->
<form id="tab-mileage" class="tab-pane"> <!-- Mileage -->
<h2 class="tab-title-resp hidden-md hidden-lg"> Mileage</h2>
<h3 class="tab-title">Tab 2</h3>
</form> <!-- Mileage -->
</div>
</div>
</div>
</div>
</div>
我需要在单击的 link 上打开模式,例如,如果我单击第二个 link,它将在模式中打开第二个选项卡。任何帮助将不胜感激,我无法在任何地方找到解决方案。
我在代码中留下了原始 ID,以防我在替换它们时出错。
您需要定位标签的锚点和 运行 $.tab('show')
函数。
http://getbootstrap.com/javascript/#tabs
既然您知道选项卡锚点具有 data-toggle=tab 和 href=id 属性,我们可以使用 link 中的 href 传递给选项卡的选择器。
$('a[data-toggle=modal][data-target]').click(function () {
var target = $(this).attr('href');
$('a[data-toggle=tab][href=' + target + ']').tab('show');
})
利用 shown.bs.modal
活动。该事件包含有关单击 <a>
的 href
的信息,然后您可以根据该信息更改选项卡:
$("#buyers-report-modal").on('shown.bs.modal', function(e) {
var tab = e.relatedTarget.hash;
$('.nav-tabs a[href="'+tab+'"]').tab('show')
})
您的代码有效 -> http://jsfiddle.net/pvo1sny8/
我在 <a>
元素中添加了 class .modal-toggle
来切换模式。此外,我添加了一些额外的功能,这些功能在点击时触发并获取点击元素的 href
,之后我在 [=16] 内的 <a>
元素上使用 tab("show")
=] 匹配 href
。 (我在你的模式中添加了一个关闭按钮,所以更容易测试演示)
$('.modal-toggle').click(function(e){
var tab = e.target.hash;
$('li > a[href="' + tab + '"]').tab("show");
});