有没有办法通过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...
});
}
});
答案 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);
}