JQuery UI Tabs - Изменить ссылку для вкладки - PullRequest
0 голосов
/ 08 июля 2011

Есть ли способ изменить ссылку на вкладку в jquery ui через jquery / javascript?

Например, мой макет страницы имеет механизм запросов вверху, с несколькими вкладками под ним. Когда пользователь отправляет запрос, я хотел бы добавить строку запроса к каждой из ссылок вкладки. Это прекрасно работает, если я полностью обновляю страницу при отправке запроса, я просто вставляю строку запроса в ссылку во время создания вкладок. Однако, если я пытаюсь отправить и получить результаты асинхронно, мне нужны ссылки на вкладки для обновления.

Ниже приведен фрагмент моего события события нажатия кнопки, я строю строку запроса, а затем отправляю ее следующим образом:

    $.ajax({
                url: "/MyController/" + actionPrefix + "Index?q=" + query + extraParm + "#ui-tabs-" + selectedTab,
                cache: false,
                success: function(html) {
                    $(list).remove();
                    $(container).append(html);
                    $('li a.actionLink').unbind('click').click(function() {
                        //This was some code I was playing with to change tab links, but couldn't seem to get it working...                        
                    });
                }
            });

Ответы [ 3 ]

4 голосов
/ 30 июля 2013

Выше ответ не будет работать в JQuery 1.9+ как дескриптор здесь . Для работы с jquery ui tabs 1.9+ вам нужно сделать что-то вроде этого

var tabs = $("#tabs");
var tab = $(tabs.data('uiTabs').tabs[TAB_INDEX]);
tab.find('.ui-tabs-anchor').attr('href', "NEW_URL");
// If cached initially. Remove cache then
tab.data( "loaded", false);
tabs.tabs( "option", "active", TAB_INDEX);
tabs.tabs("load", TAB_INDEX);

Это изменит URL вкладки в определенном индексе и загрузит эту вкладку.

2 голосов
/ 08 июля 2011

Href хранится в хранилище .data.

Вы можете использовать следующее, чтобы изменить URL

$('#tabs').tabs('url' , tabIndex , url );

Другой способ увидеть мой ответ на другой вопрос SO.

Получение целевого URL из вкладок jQuery-UI

Это позволяет вам сказать следующее, чтобы изменить URL первой вкладки

$('#tabs a:first').data('href.tabs', 'someNewUrl');
0 голосов
/ 08 июля 2011

Вы можете просто изменить href:

       success: function(html) {
            $(list).remove();
            $(container).append(html);
            $('li a.actionLink').attr('href',somethingNew);
        }
...