JQuery UI选项卡 - 修改选项卡的链接

时间:2011-07-08 15:24:51

标签: javascript jquery jquery-ui jquery-ui-tabs

有没有办法通过jquery / javascript修改jquery ui中选项卡的链接?

例如,我的页面布局顶部有一个查询机制,下面有几个标签。当用户提交查询时,我想将查询字符串附加到每个选项卡链接。如果我在提交查询时执行完整页面刷新,这可以正常工作,我只是在构建选项卡时将查询字符串插入链接中。但是,如果我尝试异步提交并获取结果,我需要使用标签链接进行更新。

下面是我的按钮点击事件事件的片段,我构建了一个查询字符串,然后像这样提交:

    $.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 个答案:

答案 0 :(得分:4)

以上答案在JQuery 1.9+中不适用于描述符here。要使用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并加载该标签。

答案 1 :(得分:2)

href存储在.data商店中。

您可以使用以下内容更改网址

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

另一种方式是看到我对另一个SO问题的回答。

Getting Target URL from jQuery-UI Tabs

这允许您说出以下内容来更改第一个标签页

$('#tabs a:first').data('href.tabs', 'someNewUrl');

答案 2 :(得分:0)

您应该只需更改href:

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