我尝试使用
禁用标签导航var $tabs = $("#tabs").tabs({
select: function(event, ui) { return false; }
});
但是,这也会禁用我用于导航的流链接:
$('input.nexttab').click(function() {
var tab_num = $tabs.tabs('option', 'selected');
// error check this tab before proceeding
if ( check_tab(tab_num) ) {
$tabs.tabs('select', tab_num + 1 );
}
});
理想情况下,我要禁用当前标签右侧的标签的标签导航,并确保我的<<< prev和next>>标签导航按钮始终有效。
有什么建议吗?
答案 0 :(得分:9)
您是否尝试将event option设置为不可能触发的内容(如果有的话)?
例如:
$('#tabs').tabs({ event: 'change' });
或
$('#tabs').tabs({ event: '' }); //probably better
答案 1 :(得分:2)
您应该在第一个闭包上存储一个标志,在传递给$(document).ready
的函数中,在单击下一个/上一个按钮时将其设置为true,并在显示选项卡时将其设置为false,这样做,您将只能使用按钮更改标签。
检查this working sample和以下代码段:
$(document).ready(function(){
var allowTabChange = false;
var $myTabs = $("#tabs");
$myTabs.tabs({
select: function(event, ui) { return allowTabChange; },
show: function(event, ui) { allowTabChange = false; },
});
$('#nextButton').click(function(){offsetTab(1);});
$('#prevButton').click(function(){offsetTab(-1);});
// Helper functions
function offsetTab(offset){
var tab_num = $myTabs.tabs('option', 'selected');
var nextTab = tab_num + offset;
if ( check_tab(nextTab) ) {
allowTabChange = true;
$myTabs.tabs('select', nextTab);
}
}
function check_tab(tab_num){
return tab_num >= 0 && tab_num < $myTabs.tabs('length');
}
});