jQuery UI选项卡禁用选项卡导航

cli*_*way 7 jquery user-interface tabs

我尝试使用禁用标签导航

var $tabs = $("#tabs").tabs({
    select: function(event, ui) { return false; }
});
Run Code Online (Sandbox Code Playgroud)

但是,这也会禁用我用于导航的流链接:

$('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 );
    }
});
Run Code Online (Sandbox Code Playgroud)

理想情况下,我想要禁用当前选项卡右侧的选项卡的选项卡导航,并确保我的<<上一页和下一页>>选项卡导航按钮始终有效.

有什么建议?

Jas*_*rry 9

您是否尝试将事件选项设置为不可能触发的事件(如果有的话)?

例如:

$('#tabs').tabs({ event: 'change' });
Run Code Online (Sandbox Code Playgroud)

要么

$('#tabs').tabs({ event: '' }); //probably better
Run Code Online (Sandbox Code Playgroud)


CMS*_*CMS 2

您应该在传递给的函数中的第一个闭包上存储一个标志,$(document).ready当单击下一个/上一个按钮时将其设置为 true,并在显示选项卡时设置回 false,通过这样做,您将只能使用按钮更改选项卡。

检查此工作示例和以下代码片段:

$(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'); 
  } 
});
Run Code Online (Sandbox Code Playgroud)