Я работаю над проектом, который интенсивно использует вкладки jQuery и Ajax. Загрузка данных на вкладки сама по себе проста, но данные на вкладках должны быть отфильтрованы с помощью поля выбора, которое находится вне div вкладок.
Вот тут и начинается моя проблема. Допустим, моя вкладка делает Ajax-вызов URL «tab1.html». jQuery tabs изменяет эту цель на хеш-значение, например, "# ui-tabs-10", но исходный URL-адрес можно получить с помощью следующего кода:
$("#tabs").tabs({
select: function(event,ui) {
var url = $.data(ui.tab, 'load.tabs');
...do stuff with url
}
});
Но я не могу получить доступ к объекту ui.tab вне этого вызова события. Таким образом, мое событие изменения окна выбора выглядит так:
var urls = {
0 : "tab1.html",
1 : "tab2.html",
2 : "tab3.html"
}
$('#selectBox').change(function(){
var tabs = $("#tabs").tabs();
var id = $('#selectBox').attr("selectedIndex");
var selectedTab = tabs("option", "selected");
var newUrl = urls[selectedTab] + "?id=" + id;
tabs("url", selectedTab, newUrl);
tabs("load", selectedTab);
});
Моя проблема в том, что хэш-карта. Мне это не нужно, и оно дублирует информацию, которую я уже закодировал в самом элементе tabs.
<div id="tabs">
<ul>
<li><a href="tab1.html">tab1</a></li>
<li><a href="tab2.html">tab2</a></li>
<li><a href="tab3.html">tab3</a></li>
</ul>
</div>
Я исчерпал и документы, и дерево DOM в Firebug, но безрезультатно. Любые идеи о том, как я могу получить href извне события табуляции?
Я использую jQuery UI версии 1.7.2. Muchos Gracias заранее. Вы, ребята, лучшие.