引导程序导航选项卡不工作
Bootstrap navtabs not working
我有一个引导导航选项卡,可以在每个选项卡的表中显示数据。我还有一个日期选择器,可以输入日期,单击提交,然后在选项卡中显示该日期的数据。我需要能够在选项卡之间切换,并在日期选择器中输入日期,以便在单击选项卡时更新数据。我所做的是有效的,只是当我最初尝试从delayedsiff选项卡切换到instantspiff选项卡时,instantspif在我输入日期并点击按钮提交之前不会起作用。这是我的导航标签和按钮代码:
<div class="row spiff-datepicksection">
<div class="col-lg-6 pull-right">
<div class="col-sm-5 col-lg-offset-4">
<div class="form-group">
<div class="input-group date">
<input type="text" id="startDate" class="form-control" />
<span class="input-group-addon">
<span class="glyphicon glyphicon-calendar"></span>
</span>
</div>
</div>
</div>
<div class="col-lg-3">
<input class="spiffdate-btn spiffdate" type="button" value="Submit" />
</div>
</div>
</div>
<div class="row spiff_tabs_body">
<!-- Nav tabs -->
<ul class="nav nav-tabs spiff_tabs" role="tablist">
<li role="presentation" class="active">
<a href="#home" aria-controls="home" class="spiffdate" role="tab" data-id="delayedspiff" data-toggle="tab">Potential Spiff</a>
</li>
<li role="presentation">
<a href="#profile" class="spiffdate" aria-controls="profile" role="tab" data-id="instantspiff" data-toggle="tab">Instant Spiff</a>
</li>
</ul>
<!-- Tab panes -->
<div class="tab-content" id="details">
<div role="tabpanel" class="tab-pane active" id="delayedspiff"></div>
<div role="tabpanel" class="tab-pane" id="instantspiff"></div>
</div>
</div>
</div>
</div>
这是我的点击事件。我正在尝试使用类spiffdate来使用tab开关上的click事件。
<script>
$(".spiffdate").click(function () {
var correctId = $("ul.spiff_tabs li.active a").attr('data-id');
var endDate = $("#startDate").val();
if (endDate == "") {
} else {
if (correctId == "delayedspiff")
{
FormGet('dashboard/delayedspiff?endDate=' + endDate, 'delayedspiff')
} else if (correctId = "instantspiff") {
FormGet('dashboard/instantspiff?endDate=' + endDate, 'delayedspiff')
}
}
});
</script>
这里可能发生的情况是,您的点击函数实际上是在选项卡更改事件发生之前调用的。因此,在您执行其他操作之前,active
类尚未应用于新元素。
为了解决这个问题,我会观看shown.bs.tab
事件。
$('a[data-toggle="tab"]').on('shown.bs.tab', function (e) {
//do your code here now
});
@Ohgodh为什么推荐的是在选项卡开关上检查事件的正确方法。但是,由于您已将单击处理程序映射到提交按钮和选项卡,因此需要正确处理调用。
你可以试试
var correctId;
var triggerFromTabs;
$('a[data-toggle="tab"]').on('shown.bs.tab', function (e) {
alert('Event From Tab');
if($("#startDate").val().length)
populateData();
});
function populateData()
{
alert('populate data');
if (correctId == "delayedspiff")
{
$("#divData").html("Data For Delayed");
} else if (correctId == "instantspiff") {
$("#divData").html("Data For Instant");
}
}
$(".spiffdate").click(function (e) {
if($(this).data("id") != undefined)
{
triggerFromTabs = true;
correctId = $(this).data("id");
}
else
{
triggerFromTabs = false;
correctId = $("ul.spiff_tabs li.active a").attr('data-id');
}
alert("Selected tab : " + correctId);
if($("#startDate").val().length && !triggerFromTabs)
populateData();
});
以下是工作示例:http://jsfiddle.net/RxguB/201/
相关文章:
- 当我更改innerHtml时,引导选项卡事件不再工作
- 给出<选项>标记一个类?API调用不工作
- $localStorage array select with ng选项工作不正常
- Jquery选择选项并获取只工作一次的更改值(页面加载时)
- 如何使 html 选择选项在 Meteor 中工作
- 引导导航选项卡在小提琴中工作,但在使用 Chrome 打开时则不工作
- Anjularjss ng选项不工作选择
- JavaScript选项卡动态宽度.animate()只能工作一次
- Jquery选项卡容器不工作(未检测到,tabs()函数)
- JQuery隐藏选项没有'我在IE 11中不工作
- AngularStrap Select和ng选项don'使用动态数组不能很好地工作
- 数据插件选项筛选器不工作
- JQuery选项卡没有't工作-没有错误
- ng-选项与ng-init无法正常工作
- ngBlur 仅在选项卡外正常工作
- 流星的 restrictCreationByEmailDomain 选项如何工作
- 可排序的 Js 在带有选择/选项标签的 chrome 中不起作用,但与 ul/li 标签一起工作
- 工作流程/选项以扩展其他选项
- 如何使 jquery 嵌套选项卡链接工作
- 谷歌地图API不工作选项