2013-05-09 76 views
0

我正在使用jquery ui选项卡(来自ui版本1.9.2),并且选项卡通过ajax远程加载。jquery ui选项卡 - 在加载事件中获取加载选项卡

在API文档(http://api.jqueryui.com/1.9/tabs/#event-load),这似乎表明,我可以得到一个加载选项卡的索引是这样的:

$(".tabs").tabs({ 
    load: function(event,ui) { console.log(ui.tab.index()); } 
}); 

但是,这是行不通的。我得到一个错误,因为ui.tabundefined

当我CONSOLE.LOG ui.tab我得到的只是加载的标签的完整URL,导致我相信ui.tab不是目标,我希望它成为的那种。我也尝试使用ui.panel.index(),但我得到相同的undefined错误。

我可以使用activate事件和ui.newTab.index()得到一个activated选项卡的索引,但这不是我正在寻找的。

我错过了什么?

+0

'console.log(ui)'应该告诉你所有你需要知道的能够找到索引的东西,如果它有可能从ui中找到它的话。 – 2013-05-09 18:21:53

+0

如何?当我'console.log(ui)'我所得到的是'[object Object]'。 – Octavient 2013-05-09 18:25:13

+1

使用浏览器与适当的控制台,如铬或firefox +萤火虫 – 2013-05-09 18:27:31

回答

4

这似乎是jQuery UI文档尚未更新或他们是错误的(和/或预期的实现是不正确的)。 ui.tab正在返回DOM节点,而不是文档建议的jQuery对象。

这将让该选项卡的索引为您提供:

$("#tabs").tabs({ 
    load:function(event,ui) { 
     var index = $(ui.tab).parent().index(); 

     console.log(index); 
    } 
}); 

如果您计划使用该功能的ui.tab节点用于任何其他目的可能是最好先进行缓存。

+0

谢谢,大卫巴克。这解决了我的问题,所以我会将其标记为答案。任何想法,我可以向jQuery团队报告(过时的文档)? – Octavient 2013-05-09 18:54:35

+0

我刚刚报告了它;-)(https://github.com/jquery/api.jqueryui.com/issues) – 2013-05-09 18:57:57

+0

@ octavient docs是相关的1.10.3,1.9.2的确返回了一个DOM节点 – 2013-05-09 19:54:51

相关问题