0

我目前正在从 JQuery UI 1.8.14 升级到 JQuery UI 1.10。

使用 v1.8.14 代码,使用新的浏览器选项卡打开选项卡将重新加载整个页面,这会激活默认选项卡(即 tabIndex=0)

我遇到了关于 JQuery UI 选项卡并在新的浏览器选项卡/窗口中打开选项卡的问题。在我的页面上,通过右键单击选项卡并选择“在新选项卡中打开链接”。选项卡内容将通过 ajax 加载

问题是新页面将直接显示 ajax 响应的 HTML,没有 CSS 样式、JavaScript 或任何东西。

这显然是 JQuery UI 团队的设计更改。请参阅以下链接: http ://bugs.jqueryui.com/ticket/9363

在我看来,这似乎是一个常见问题,但我找不到任何解决方案。有关解决方法或修复的任何建议?

演示此问题的一个非常好的示例是 JQuery UI 选项卡演示页面:http: //jqueryui.com/tabs/

右键单击任何选项卡,然后选择“在新选项卡中打开链接”。

谢谢你的帮助!

4

1 回答 1

0

在 beforeActivate 事件中,对于每个选项卡,将 href 存储为数据对象,然后将 href 设置为 aria-controls。

    $(ui.newTab).parent().find("li a").eq(i).data("href.tabs",$(ui.newTab).parent().find("li a").eq(i).attr('href'));
    $(ui.newTab).parent().find("li a").eq(i).attr('href', '#'+$(ui.newTab).parent().find("li").eq(i).attr('aria-controls'));

在激活事件中,对于每个选项卡,将数据对象中的值设置为 href。

    $(ui.newTab).parent().find("li a").eq(i).attr('href', $(ui.newTab).parent().find('a').eq(i).data("href.tabs"));
于 2013-10-15T15:15:36.503 回答