jQuery和jQuery UI升级打破了标签

时间:2013-03-15 13:01:32

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

我有一个使用jQuery UI Tabs小部件的网站,它适用于“旧版本”,jQuery:1.5.1,jQuery UI:1.8.4。

对网站进行其他更改/升级,我想转移到两个软件包的更新版本,通过逐步升级到每个软件包的“下一个主要版本”。在不改变我自己的js-code的几行的情况下,我可以使用jQuery 1.8.3和jQuery UI 1.8.24,一切都运行正常。

将jQuery升级到1.9.1,单击选项卡似乎会触发重新加载页面而不是切换选项卡。所有选项卡都是静态的,因此不应存在任何ajax问题。

页面的URL(它是Typo3安装的所有部分)具有以下格式:

https://server.some.where/?id=49&project_id=13&action_type=display

单击选项卡时,将生成基本href +#tab-X的HTTP GET:

https://server.some.where/#tabs-2

由于早期版本的jQuery没有启动HTTP GET,但很高兴切换标签,我很难过。通过阅读相关jQuery版本的更改日志,我看不到任何匹配的东西,但那可能只是我......: - )

升级jQuery UI(1.9.2 / 1.10.2)会产生另一个问题 - 所有选项卡都是从头开始的(所有div都是一个接一个地显示)。

相关HTML:

<div id="display-tabs">
  <ul class="tabs">
    <li><a href="#tabs-1">...</a></li>
    <li><a href="#tabs-2">...</a></li>
    <li><a href="#tabs-3">...</a></li>
  </ul>
  <div id="tabs-1">...</div>
  <div id="tabs-2">...</div>
  <div id="tabs-3">...</div>
</div>

激活标签小部件非常简单:

  

$( '#显示标签')的选项卡();

jQuery是从Google获取的,看起来也不错:

<link rel="stylesheet" media="screen" type="text/css" href="https://ajax.googleapis.com/ajax/libs/jqueryui/1.8.24/themes/smoothness/jquery-ui.css" />
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.8.24/jquery-ui.min.js"></script>

我暂时在测试网站上消除了jQuery的大多数其他用途,但这些问题似乎很难解决。任何想法都欢迎......

1 个答案:

答案 0 :(得分:1)

问题是已知问题,但我花了一段时间连接点并使用正确的搜索字词 - 对不起!

简而言之,版本1.9及更高版本的jQuery将<base href="URL">和锚点<a href="#tab-X">的链接视为页面本地的链接。这种行为可能比早期版本中发生的更为正确,但这是一个改变,打破了许多依赖于基础标签的框架构建的网站。我的本地解决方案是在列表中提供定义选项卡的完整链接,如下所示://$HTTP_HOST/$REQUEST_URI#tab-X

有关此问题的更多信息: