在第一个jquery选项卡后面调用url(初始化)

时间:2012-02-28 10:15:44

标签: jquery jquery-tabs

我的页面上有一个jquery选项卡,其中每个列表项都包含一个超链接,每当有人更改选项卡时它就会被调用(这是一个填充选项卡中值的webservice调用)。

我可以在更改标签时完成此行为,但现在我还希望在调用.tabs函数时调用第一个超链接(用于初始化目的)

我该怎么做?在页面末尾调用此方法不起作用:

setTimeout(function() {$('#tabs').tabs('select', 0);}, 0);

可能是因为只是调用.tabs()已经选择了第一个标签。

我的标签代码(js + asp.net):

<div id="tabs" class="tab-panel">
    <ul class="tabs">
        <asp:Repeater ID="rpt" runat="server">                
            <ItemTemplate>
                <li>
                    <asp:HyperLink ID="btnEdit" runat="server" NavigateUrl="myPage.aspx/GetInfo" Text='<%# Eval("Name") %>'></asp:HyperLink>
                    <asp:HiddenField ID="txtId" runat="server" Value='<%# Eval("ID") %>' />
                </li>
            </ItemTemplate>
        </asp:Repeater>
    </ul>
    <div class="tab rounded-bottom rounded-topright">
        <div class="tab-content" id="licRights">
            <input type="text" value="" id="myText">
        </div>
    </div>
</div>

使用Javascript:

$("#tabs").tabs({
    select: function (event, ui) {
        var Id = $(ui.tab).siblings("input").val();
        var settings = $(this).tabs("option", "ajaxOptions");
        settings.data = $.toJSON({ id: Id });
    },
    ajaxOptions: {
        success: function (response) {
            $("#myText").val(response.d);                        
        }
    }
});

1 个答案:

答案 0 :(得分:1)

单击选项卡时会触发select事件,而不是以编程方式更改。这就是documentation实际上说的内容。

  

选择
  单击选项卡时会触发此事件。

您可以在 here 中看到这一点:最初只触发“show”事件


您可以做的是触发第一个标签上的点击:

  1. 将默认选项设置为“ - 1”,因此最初未选择任何标签(否则程序点击无效)
  2. 找到第一个锚点并触发点击事件
  3. 以下是代码:

    $("#tabs").tabs({
        selected: -1,
        ...
    }).find('.ui-tabs-nav a:first').click()
    

    <强> DEMO