3

私は jQuery UI Tabs ウィジェットを使用する Web サイトを持っていますが、「旧バージョン」の jQuery: 1.5.1、jQuery UI: 1.8.4 で問題なく動作します。

サイトに他の変更/アップグレードを行って、両方のパッケージのより新しいバージョンに移動したいと思い、それぞれの「次のメジャーバージョン」に段階的にアップグレードしました。自分の js コードを数行以上変更することなく、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>

タブ ウィジェットのアクティブ化は非常に簡単です。

$('#display-tabs').tabs();

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 の他のほとんどの使用を排除してきましたが、これらの問題は解決しないようです。どんなアイデアでも歓迎...

4

1 に答える 1

1

この問題は既知の問題ですが、点を結び付けて正しい検索用語を使用するのに時間がかかりました。申し訳ありません。

つまり、バージョン 1.9 以降の jQuery は、<base href="URL">と アンカーへのリンクの組み合わせを、ページに対してローカルではない<a href="#tab-X">リンクとして扱います。この動作は、以前のバージョンよりも正確かもしれませんが、base-tag に依存するフレームワーク上に構築された多くのサイトを壊す変更です。私のローカル ソリューションは、次のように、タブを定義するリストに完全なリンクを提供することでした。//$HTTP_HOST/$REQUEST_URI#tab-X

この問題の詳細:

于 2013-03-19T11:48:22.547 に答える