Javascript JQuery UI选项卡-修改选项卡的链接
有没有办法通过jquery/javascript修改jquery ui中选项卡的链接 例如,我的页面布局顶部有一个查询机制,下面有几个选项卡。当用户提交查询时,我希望将查询字符串附加到每个选项卡链接。如果我在提交查询时进行整页刷新,这就可以了,我只需在构建选项卡时将查询字符串插入链接中即可。但是,如果我尝试异步提交和获取结果,我需要更新选项卡链接 下面是我的按钮单击事件的一个片段,我构建了一个查询字符串,然后按如下方式提交:Javascript JQuery UI选项卡-修改选项卡的链接,javascript,jquery,jquery-ui,jquery-ui-tabs,Javascript,Jquery,Jquery Ui,Jquery Ui Tabs,有没有办法通过jquery/javascript修改jquery ui中选项卡的链接 例如,我的页面布局顶部有一个查询机制,下面有几个选项卡。当用户提交查询时,我希望将查询字符串附加到每个选项卡链接。如果我在提交查询时进行整页刷新,这就可以了,我只需在构建选项卡时将查询字符串插入链接中即可。但是,如果我尝试异步提交和获取结果,我需要更新选项卡链接 下面是我的按钮单击事件的一个片段,我构建了一个查询字符串,然后按如下方式提交: $.ajax({ url: "
$.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...
});
}
});
您应该可以只更改href:
success: function(html) {
$(list).remove();
$(container).append(html);
$('li a.actionLink').attr('href',somethingNew);
}
您应该可以只更改href:
success: function(html) {
$(list).remove();
$(container).append(html);
$('li a.actionLink').attr('href',somethingNew);
}
href存储在.data存储中 您可以使用以下内容更改url
$('#tabs').tabs('url' , tabIndex , url );
从另一个角度看我对另一个问题的答案
这允许您说以下内容来更改第一个选项卡url
$('#tabs a:first').data('href.tabs', 'someNewUrl');
href存储在.data存储中 您可以使用以下内容更改url
$('#tabs').tabs('url' , tabIndex , url );
从另一个角度看我对另一个问题的答案
这允许您说以下内容来更改第一个选项卡url
$('#tabs a:first').data('href.tabs', 'someNewUrl');
上述答案在jQuery1.9+中不起作用。要使用jQueryUITabs 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并加载该选项卡。上述答案在JQuery 1.9+中不起作用。要使用jQueryUITabs 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并加载该选项卡。它们上的href是类似“#ui-tabs-1”的链接。如果我查看生成的html,会显示完整的href,如“/MyController/Action”。但是,如果我执行“警报($(this.attr('href')),它会显示为“#ui-tabs-1”。它们上的href是类似“#ui-tabs-1”的链接。如果我查看生成的html,会显示完整的href,如“/MyController/Action”。但是,如果执行“警报($(this.attr('href')),它显示为“#ui-tabs-1”。为什么这样的东西不起作用:$(“#tabs a.actionLink”).each(function(){$(this.data('href.tabs',”););呃,你不能加载google,因为它是跨域的。你使用的url是在同一个域上吗?是的,我尝试了一个本地域,它工作了,我只是在那里插入google进行测试。=)非常感谢!@redsquare他当然可以在jQuery>=1.5上加载。只需在ajax()参数中添加“crossDomain:true”。是的,它被称为jsonP(填充json)。它已集成到版本1.5的JQuery核心中。为什么这样的操作不起作用:$(“#tabs a.actionLink”).each(function(){$(this.data('href.tabs',”););呃,你不能加载google,因为它是跨域的。你的url是在同一个域上使用的吗?是的,我尝试了一个本地域,它工作了,我只是在那里插入google进行测试。=)非常感谢@在jQuery>=1.5的情况下,他肯定能做到。只需在ajax()参数中添加“crossDomain:true”。是的,它被称为jsonP(填充json)。它在1.5版上集成到JQuery核心中。感谢您为当前版本的JQuery UI更新此问题。感谢您为当前版本的JQuery UI更新此问题。