JQuery, доступ к вкладке страницы "с содержанием AJAX" через внешнюю гиперссылку? - PullRequest
0 голосов
/ 30 сентября 2011

У меня проблемы с открытием страницы, отображающей конкретную вкладку jquery, которая загружает ее содержимое через ajax.

Проблема в том, что jquery-ui открывает вкладки, вызываемые по внешним ссылкам, с помощью хэштега привязки, но вкладки содержимого ajaxЯкорь не имеет.

Любые идеи

Заранее спасибо.

В основном тот же код в демоверсиях jquery-uiЯ хочу, чтобы на моей домашней странице была ссылка, которая откроет другую страницу, уже отображающую tabX

$(document).ready(function() {
    $(function() {
        $( "#tabs" ).tabs({
            ajaxOptions: {
                        error: function( xhr, status, index, anchor ) {
                            $( anchor.hash ).html(
                                "Couldn't load this tab. We'll try to fix this as soon as possible. " +
                                "If this wouldn't be a demo." );
                        }
            }
        });
    });
});



<div id="tabs">
    <ul>
        <li class="tab first_tab"><a id="tab1" href="tab1.html">dit doen we</a></li>
        <li class="tab"><a id="tab2" href="tab2.html">disciplines</a></li>
        <li class="tab"><a id="tab3" href="tab3.html">cases</a></li>
        <li class="tab"><a id="tab4" href="tab4.html">uitgelicht</a></li>
    </ul>
</div>

1 Ответ

1 голос
/ 01 октября 2011

Чтобы выбрать вкладку, вы можете использовать метод select на .tabs(), например, $('#tabs').tabs('select', 1) выберет 2-ю вкладку (с индексом вкладки 1).

Чтобы открыть страницу и сказать ей выбрать вкладку, вам нужно как-то «передать намерение». Если вы используете AJAX для перехода на другую страницу, вы можете просто загрузить страницу и вызвать .tabs('select', tabIndex).

Если вы загружаете вторую страницу без AJAX, вы можете передать переменную с помощью строки запроса, например, ?loadTab=1 и проанализируйте его на загружаемой странице. location.search даст вам строку запроса. Этот вопрос поможет вам разобрать его.

Итак, на 2-й странице у вас будет что-то вроде этого:

$(function() {
    $("#tabs").tabs({
        ...
    });

    // code to parse the loadTab variable in the querystring

    if (typeof(loadTab) !== 'undefined' && parseInt(loadTab) !== 'NaN')
        $('#tabs').tabs('select', parseInt(loadTab));
}
...