我有一个简单的jquery选项卡小部件设置。它以两个选项卡开始,一个是错误 1,一个是加号。单击加号将添加错误 2 选项卡。再次单击它会增加错误 3 选项卡。问题是单击加号后我无法从选项卡中删除选项卡索引。RemoveAttr('tabIndex') 在页面加载时工作以防止第一个选项卡具有索引,但是在我单击加号后,我还没有找到从其余选项卡中删除选项卡索引的方法。我把removeAttr()放在.show()之后。我把它放在那行之前。我尝试将其置于激活、加载、加载前和创建中。我试过设置 tabindex=-1 而不是 removeattr()。我也尝试摆脱隐藏/显示并使用 css 显示/不显示。
$(document).ready(function(){
$("#tabs").tabs({
beforeActivate: function (event, ui) {
if (ui.newTab.attr('id') == 'liTabsPlus') {
event.preventDefault();
errorTabsShowing += 1;
$('#liTabs' + errorTabsShowing).show();
$(this).tabs('option', 'active', errorTabsShowing - 1);
if (errorTabsShowing == MAX_NUMBER_OF_ERRORS)
ui.newTab.hide();
}
}
});
$("#liTabs1").removeAttr("tabIndex");
$("#liTabs2").hide();
$("#liTabs3").hide();
$("#liTabs4").hide();
}
很难说没有看到您的标记,但我通过循环访问我的元素并将选项卡索引设置为 -1 来做到这一点。这将是对所有以"liTabs"的ID开头的选项卡执行此操作的示例,因此liTabs1,liTabs23等。
$('[id^=liTabs]').each(function(){ this.tabIndex = -1; });
希望这有帮助