私はjQueryタブとAjaxを多用するプロジェクトに取り組んでいます。タブへのデータのロード自体は単純ですが、タブ内のデータは、タブdivの外側にある選択ボックスでフィルタリングする必要があります。
ここから私の問題が始まります。私のタブがURL「tab1.html」に対してAjax呼び出しを行ったとしましょう。jQueryタブは、このターゲットを「#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);
});
私の問題はそのハッシュマップです。私はそれを必要としません、そしてそれは私がすでにタブdiv自体にコード化した情報を複製します。
<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>
FirebugのドキュメントとDOMツリーの両方を使い果たしてしまいました。タブイベントの外部からhrefを取得する方法についてのアイデアはありますか?
jQueryUIバージョン1.7.2を使用しています。事前にMuchosgracias。君たちは最高です。