【问题标题】:jquery ui tabs - get loaded tab in load eventjquery ui tabs - 在加载事件中获取加载的选项卡
【发布时间】:2013-05-09 18:18:34
【问题描述】:

我正在使用 jquery ui 选项卡(来自 ui 版本 1.9.2),并且这些选项卡正在通过 ajax 远程加载。

在 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 选项卡的索引,但这不是我想要的。

我错过了什么?

【问题讨论】:

  • console.log(ui) 应该告诉您找到索引所需的一切,如果可以从ui 找到它的话。
  • 怎么样?当我console.log(ui) 时,我得到的只是[object Object]
  • 使用带有适当控制台的浏览器,例如 chrome 或 firefox+firebug
  • 你能用jsfiddle你的代码吗? ui.tab 应该是 load 回调中的 jQuery 对象。
  • @KevinB 我正在使用带有适当控制台的浏览器——Mac OS 上的 Chrome。有什么方法可以让 Chrome 描绘这个对象的属性?

标签: jquery jquery-ui jquery-ui-tabs


【解决方案1】:

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

这将为您获取选项卡的索引:

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

         console.log(index);
    }
});

如果您打算将该函数中的ui.tab 节点用于任何其他目的,最好先缓存它。

【讨论】:

  • 谢谢,大卫·巴克。这解决了我的问题,所以我将其标记为答案。知道我可以在哪里向 jQuery 团队报告这个(过时的文档)吗?
  • @octavient 文档与 1.10.3 相关,1.9.2 确实返回了一个 DOM 节点
猜你喜欢
  • 2011-09-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多