JQueryUI TABS プラグインを使用しています。
私のタブ構造があります。
<div id="tabs">
<ul>
<li><a href='#tabs-1'>TabGroup1</a></li>
<li><a href='#tabs-2'>TabGroup2</a></li>
</ul>
<div id='tabs-1'>
<a href='tab1_link1.html'>TabGroup1-link1</a>
<a href='tab1_link2.html'>TabGroup1-link2</a>
</div>
<div id='tabs-2'>
<a href='tab2_link1.html'>TabGroup2-link1</a>
<a href='tab2_link2.html'>TabGroup2-link2</a>
</div>
</div>
タブが選択されたときに、そのようなコードを使用して、タブの最初のリンクを選択してロードします。それ自体が機能します。
$(function() {
$( "#tabs" ).tabs();
// Activate first link on tab
$( "#tabs" ).bind( "tabsselect", function(event, ui) {
window.location.href = $(ui.panel).find('a:first').attr('href');
});
});
しかし、私のタスクでは、URL パラメータでタブを選択するための追加コードが強く必要です。そのため、訪問者が 2 番目のタブ グループからリンクを開いた場合、デフォルトの最初のタブではなく、2 番目のタブが開いていると表示する必要があります。
このタブからのリンクがロードされたときに正しいタブを表示する作業コードがあります(AJAXなどはなく、通常のリンクのみ)。$URL['part']
エンジンの URL から受け取る変数です。これは個別に正常に動作します。
<?php if(@$URL['part']=='part2'){
echo '<script>$(function() { $("#tabs").tabs("select","#tabs-2"); });</script>';
} ?>
しかし、これらのコードブロックの両方を使用すると、ページが繰り返し無限にリロードされます:-(
更新しました:
コードの両方のブロックが SELECT イベントを使用しているため、ループが発生することに注意してください。
UPDATED2:
タブ選択時のリンク読み込みはONCLICK、URL設定でアクティベーションタブのSELECTを使えば解決するのではないかと思います。しかし、これをコードで記述する方法がわかりません。