Перезагрузить вкладку Jquery с параметром - PullRequest
1 голос
/ 05 августа 2009

После некоторых событий на вкладке я бы хотел перезагрузить ее. Мне нужно отправить параметр на страницу, которая загружается во вкладку.

Следующая страница перезагрузит страницу: $ ("# tabs"). Tabs ('load', 6);

Но как я могу отправить параметр с ним?

Ответы [ 5 ]

0 голосов
/ 21 марта 2013

К вашему сведению, способ выполнения изменился в версии 1.10. В 1.9 они устарели "ajaxOptions". Это метод, который я использовал. Начиная с 1.10 метод не работает вообще. Вместо этого вы должны сделать следующее

Old Way $ ("#tabs") .tabs ({ ajaxOptions: { имя пользователя: "foo", пароль: "бар" } });

Новый Путь

$( "#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

0 голосов
/ 09 октября 2010

Я предполагаю, что вы имеете в виду параметры 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 ('# tabs'), но вы должны это сделать.

0 голосов
/ 06 августа 2009
// 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 голосов
/ 06 августа 2009

Вы можете сделать что-то вроде этого:

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 не имеет простой функции для получения URL выбранной вкладки, но если вы сделаете что-то подобное, вы можете получить его:

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

Это позволит вам изменять URL все, что вы хотите.

Вы также можете сделать что-то вроде:

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 голосов
/ 05 августа 2009

Вы можете загрузить другой URL на вкладке для отправки параметров получения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...