JQuery-UI-вкладки. передача строки запроса - PullRequest
5 голосов
/ 08 октября 2009

Как я могу передать строку запроса (? Id = avalue) с каждой из ссылок ниже, связанных с вкладками ниже. Я пытаюсь открыть внешний контент на вкладках (чтобы он работал нормально), но мне не удалось передать параметр с URL-адресами. Значение параметра будет одинаковым для каждой ссылки.

Мой рабочий код:

<script type="text/javascript">

        $(function() {
            $("#tabs").tabs({spinner:'<b>Retrieving Data...</b>'}); 

        });

 </script>


<div id="tabs">
            <ul>
           <li><a href="table.aspx"><span>Introduction</span></a></li>
                <li><a href="RequestActionUpdate.aspx"><span>Update</span></a></li>
                <li><a href="tabstesttarget.aspx"><span>Target</span></a></li>
                <li><a href="table.aspx" ><span>View History</span></a></li>
            </ul>

        </div>

Любая помощь, которую вы можете предложить мне, будет высоко оценена.

Заранее спасибо

Ответы [ 4 ]

9 голосов
/ 08 октября 2009

Вы можете использовать опцию ajaxOptions. Виджет вкладок будет передавать эти параметры на jQuery.ajax().

В следующем коде используется опция data функции jQuery.ajax() для передачи результата функции getId (в данном примере временной код в стиле Unix) на сервер при выборе вкладки.
URL запроса будет выглядеть примерно так: RequestActionUpdate.aspx?id=1255015611701:

function getId() {
  return (new Date()).getTime();
}

$("#tabs").tabs({
  spinner:'<b>Retrieving Data...</b>',
  ajaxOptions: { data: { id: getId } }
});
1 голос
/ 08 октября 2009

Из поисков, которые я сделал, лучший способ подойти к этому без необходимости делать что-то ужасное, как:

window.location = href + '?id=avalue'

будет обновлять ссылки якоря при загрузке страницы. Возьмите любой ID / значение, которое вам нужно, и просто добавьте его;

$(document).ready(function(){
    value = "?id=foobar"
    $("#tabs ul li a").attr('href', ($(this).attr('href') + value) );
});

Не самое элегантное решение, но оно работает.

1 голос
/ 08 октября 2009

Что произойдет, если вы добавите наблюдателя событий на все ссылки?

$("#tabs ul li a").click(
    function(){
       $(this).attr('href', $(this).attr('href') + $('#someHiddenInput').val());
     }
);
1 голос
/ 08 октября 2009

Вы можете жестко указать параметр для каждой ссылки:

<li><a href="RequestActionUpdate.aspx?id=avalue"><span>Update</span></a></li>

Это должно работать просто отлично. Что именно у вас не работает? Или ты имеешь в виду что-то еще?

...