选择&以编程方式加载jquery选项卡

时间:2009-06-09 15:35:04

标签: jquery

我在尝试使用此功能时遇到了麻烦。我想在页面加载时自动加载标签。我使用了以下代码。

$tabs.tabs('select', 0); 

但是,发生的事情是它只选择它而不加载它(该标签通过ajax加载)。有趣的是,当我选择另一个选项卡然后再次返回第一个选项卡时,它会正常加载。

7 个答案:

答案 0 :(得分:20)

我只是回答这个问题,以避免人们误解弃用函数。

大多数答案在提出问题时都是正确的,但大多数答案都没有在新API中使用。

尝试使用以下代码如果您使用的是新API。

$(function() { 
    $( "#tabs" ).tabs(); 
    $( "#tabs" ).tabs( "option", "active", 2 ); 
});

有关详细信息,请查看以下链接。

http://jqueryui.com/upgrade-guide/1.9/#deprecated-select-method

答案 1 :(得分:17)

您是否尝试在初始化时指定所选标签:

var $tabs = $('.selector').tabs({ selected: 0 });

初始化后,您可以通过编程方式选择一个选项卡:

$tabs.tabs('option', 'selected', 0);

编辑:这对我来说非常有用:

var $tabs = jQuery("#tabDiv > ul").tabs( { selected: null } );
$tabs.tabs("select", 0);

答案 2 :(得分:2)

之前我遇到过同样的问题。我的解决方案是调用tabs()两次;一次没有参数;一次使用选择选项:

例如

$("#tabs").tabs();
$("#tabs").tabs('select', 2);

答案 3 :(得分:1)

如果没有任何作用,这里有一个小技巧:

您可以使用从jquery添加和删除CSS类,如下所示:

// Firstly, remove the "active" class from div panel and <li> tag
$('#firstTab, #firstTabDiv').removeClass('active');
Also, remove the "in" class from div tag in which your panel resides
$('#firstTabDiv').removeClass('in');

Then add same class which you removed in the div and panel in which you want 
to get automatically select
$("#thirdTab, #thirdTabDiv").addClass('active');
$("#thirdTabDiv").addClass('in');

<li id='firstTab' class="active">
    <a href="#firstTabDiv" data-toggle="tab">
        First Tab
    </a>
</li>
<li id='secondTab' class="active">
    <a href="#secondTabDiv" data-toggle="tab">
        Second Tab
    </a>
</li>
<li id='thirdTab' class="active">
    <a href="#thirdTabDiv" data-toggle="tab">
        Third Tab
    </a>
</li>

这样您就可以自动显示标签上载。

答案 4 :(得分:0)

不要忘记把它放在$(文件).ready(function(){;})中;构造

我确定这不是你问题的原因,但是确保你的jQuery在设置好处理之前不会触发它是不会有害的。

答案 5 :(得分:0)

您应该可以致电:

$tabs.tabs('load', 0);

选择它以加载其数据后。

答案 6 :(得分:0)

假设您正在使用Jquery标签页(http://jqueryui.com/tabs/#default)中的演示。您可以通过单击锚点轻松选择选项卡。只需找到基于其标签名称的锚标签,就像这样......

$('a[href=#tabs-1]').click(); //selects the first tab