2009-08-31 85 views
4

我正在研究一個大量使用jQuery標籤和Ajax的項目。將數據加載到標籤本身很簡單,但標籤中的數據需要通過位於標籤div之外的選擇框進行過濾。從jQuery-UI標籤中獲取目標URL

這是我的問題開始的地方。假設我的選項卡對URL「tab1.html」進行了Ajax調用。 jQuery的標籤改變這個目標變成散列值類似「#用戶界面的選項卡-10,」但我可以通過下面的代碼獲得的原始網址:

$("#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的任何想法?

我正在使用jQuery UI版本1.7.2。 Muchos gracias提前。你們是最棒的。

回答

8

以下將寫出href的控制檯。

演示,提醒在該選項卡鏈接中的AJAX標籤的href的here

$('#tabs a').each(function() { 
    var href = $.data(this, 'href.tabs'); 
    console.log(href); 
}) 
+0

這正是我一直在尋找你想要的網址標籤的從零開始的索引。謝謝! – rtperson 2009-08-31 21:21:22

1

您還可以設置標題屬性。

<div id="tabs"> 
    <ul> 
     <li><a href="tab1.html" title="First tab contents">tab1</a></li> 
     <li><a href="tab2.html" title="Second tab contents">tab2</a></li> 
     <li><a href="tab3.html" title="Third tab contents">tab3</a></li> 
    </ul> 
</div> 

有了這個,jQueryUI的將創建的div基於標題的ID,用下劃線代替空格,因此,你應該能夠訪問使用的東西的div像

$("#First_tab_contents") 

乾杯!

5
var links = $("#thetabs > ul").find("li a"); 
var url = $.data(links[tabnum], 'href.tabs'); 

tabnum是