【问题标题】:jquery-ui tabs callback not triggered when tabs are first initialized首次初始化选项卡时未触发 jquery-ui 选项卡回调
【发布时间】:2013-06-24 02:45:05
【问题描述】:

我正在尝试模拟jquery-ui 1.9 中引入的ui.newTab, ui.oldTab 功能。 (Drupal 还不支持 1.9,所以我使用的是1.8。) 这是我的模拟代码:

var oldTab;
var newTab;
mytabs.tabs({ 
  select: function(event, ui) {  
    oldTab = newTab;
    newTab = $(ui.tab); 
    if (oldTab){
      console.log("do stuff with oldTab");              
    }
    console.log("do stuff with newTab);
  }
});

当用户点击一个新标签时,这个“选择”回调被触发。到目前为止一切顺利。

但是,当 jquery-ui 首次初始化选项卡并选择最左侧的选项卡时,不会触发此“选择”回调。因此,oldTab 不会在用户第一次点击新标签时被定义。

我尝试添加代码以编程方式选择最左侧的选项卡:

mytabs.tabs('select', 0)

但是选择回调仍然没有被触发。我相信这是因为最左边的选项卡已经被选中。见here

当 jquery-ui 初始化选项卡并选择最左边的选项卡时,关于如何将 newTab 初始化为所选选项卡的任何建议?

【问题讨论】:

  • 这是因为第一个选项卡没有被选中,它作为小部件初始化的一部分被激活

标签: jquery-ui jquery-ui-tabs


【解决方案1】:

这是因为第一个选项卡没有被选中,它作为小部件初始化的一部分被激活,不会触发选择事件。

一种可能的解决方案是将oldTab 的初始化值设置为声明的一部分。

var oldTab;
var newTab = mytabs.find('> ul a:first');
mytabs.tabs({ 
  select: function(event, ui) {  
    oldTab = newTab;
    newTab = $(ui.tab); 
    if (oldTab){
      console.log("do stuff with oldTab",oldTab.get());              
    }
    console.log("do stuff with newTab", newTab.get());
  }
});

演示:Plunker

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-07-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多