Вызовите URL за первой вкладкой jquery (инициализация) - PullRequest
1 голос
/ 28 февраля 2012

У меня есть вкладка jquery на моей странице, где каждый элемент списка содержит гиперссылку, которая должна вызываться всякий раз, когда кто-то меняет вкладку (это вызов веб-службы, который заполняет значения на вкладке).

Я могу выполнить это при смене вкладок, но теперь я также хочу, чтобы первая гиперссылка была вызвана при вызове функции .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 Ответ

1 голос
/ 28 февраля 2012

Событие select запускается при нажатии на вкладку, а не программно изменяется.Вот что на самом деле говорится в документации .

select
Это событие вызывается при нажатии на вкладку.

Вы можете увидеть это в действии здесь : изначально запускается только событие "show"


Что вы можете сделать, это вызвать щелчок по первомуtab:

  1. установите для выбора по умолчанию значение "-1" , поэтому изначально вкладка не выбирается (в противном случае программный щелчок не действует)
  2. найдитеПервый якорь и вызвать событие клика

Вот код:

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

DEMO

...