2009-08-05 43 views
1

在标签的一些事件后的Jquery标签重装,我想重新加载它。我需要发送一个参数到加载到选项卡的页面。与参数

以下重新加载的页面:$( “#选项卡”)的选项卡( '负载',6);

但是,我怎么能发送带有它的参数?

回答

0
// Read a page's GET URL variables and return them as an associative array. 
function getUrlVars() 
{ 
    var vars = [], hash; 
    var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&'); 

    for(var i = 0; i < hashes.length; i++) 
    { 
     hash = hashes[i].split('='); 
     vars.push(hash[0]); 
     vars[hash[0]] = hash[1]; 
    } 

    return vars; 
} 

然后您可以抓取URL变量并相应地调整选项卡(我只是这样做的一个项目不超过一小时前更多!!)从snipplr.com

+0

无关的问题! – Neo 2010-10-09 03:20:02

+0

然而,他把它标记为他所选择的答案......你是一个聪明的新手。 – idrumgood 2010-10-14 20:29:07

0

你可以在标签加载不同的URL发送GET参数。

0

采取

代码你可以做这样的事情:

var $tabs = $('#example').tabs(); 
var selected = $tabs.tabs('option', 'selected'); 
var newurl = "ajax/tab3.html?extraparm=4"; 
$tabs.tabs('url' , selected , newurl); 
$tabs.tabs('load' , selected); 

了jQuery UI选项卡插件好好尝试一下有一个简单的函数来获取当前选择的选项卡的网址,但如果你做这样的事情,你可以得到它:

$tabs.find('.ui-tabs-selected a').data('href.tabs'); 

这将让你修改所有你想要的网址。

你也可以这样做:

var $tabs = $('#example').tabs(); 
var selected = $tabs.tabs('option', 'selected'); 
var extraData = {extraparm:4,otherparm:'foo'}; 
$tabs.tabs('option', 'ajaxOptions', { data: extraData }); 
$tabs.tabs('load' , selected); 
$tabs.tabs('option', 'ajaxOptions', { data: {} }); 

它使用ajaxOptions设置额外的数据要发送,再次选择选项卡,然后将数据传回一个空的对象。

0

我假定你的意思GET参数,并且希望将他们从表单元素,如输入文本框和选择框和......但我也把extraParams论据参数不符合这个逻辑,或者你要手动传递给函数:

function reloadTabWithParams(extraParams) { 
    formParams = jQuery('#someSelectBox').attr('id) +'='+ jQuery('#someSelectBox').val() ; 
    //formParams += whatever els.... 
    var tabIndex = jQuery('#tabs').tabs('option', 'selected'); 
    dataParam = typeof(extraParams) != 'undefined' ? extraParams+'&'+formParams : formParams; 
    jQuery('#tabs').tabs('option', 'ajaxOptions', { data: dataParam }); 
    jQuery('#tabs').tabs('load' , tabIndex); 
    jQuery('#tabs').tabs('option', 'ajaxOptions', { data: {} }) 
} 

我忘了使用的tabIndex代替的jQuery(“#标签”),但你应该这样做。

0

仅供参考,以实现方式在1.10版本已经改变。在1.9中,他们弃用了“ajaxOptions”。这是我一直在使用的方法。从1.10开始,这项技术根本不起作用。相反,你必须做如下

老方法 $( “#tabs”).tabs({ ajaxOptions:{ 用户名: “富”, 密码: “酒吧” } });

新途径

$("#tabs").tabs({ 
    beforeLoad: function(event, ui) { 
     ui.ajaxSettings.username = "foo"; 
     ui.ajaxSettings.password = "bar"; 
    } 
}); 

这来自http://jqueryui.com/upgrade-guide/1.9/#deprecated-ajaxoptions-and-cache-options-added-beforeload-event