我使用 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 参数选择选项卡非常必要。因此,如果访问者从第二个选项卡组打开链接,则必须显示第二个选项卡已打开,而不是默认的第一个选项卡。*
我有工作代码,当加载来自此选项卡的链接时显示正确的选项卡(没有 AJAX 等,只是通常的链接)。$URL['part']
是我从引擎中的 URL 收到的变量,这单独工作正常。
<?php if(@$URL['part']=='part2'){
echo '<script>$(function() { $("#tabs").tabs("select","#tabs-2"); });</script>';
} ?>
但是当我同时使用这两个代码块时,它会导致页面反复无限重新加载:-(
更新:
请注意,这两个代码块都使用 SELECT 事件,这就是发生循环的原因。
更新2:
我想,如果在选择选项卡时使用 ONCLICK 加载链接,并且由于 URL 设置在激活选项卡上选择,它可以解决问题。但我不知道如何用代码编写它。