所以我有一些jQuery UI選項卡。源代碼如下:
HTML:
<div class="tabs">
<ul>
<li><a href="#ranges">Ranges</a></li>
<li><a href="#collections">Collections</a></li>
<li><a href="#designs">Designs</a></li>
</ul>
<div id="ranges"></div>
<div id="collections"></div>
<div id="designs"></div>
</div>
的jQuery:
$(document).ready(function() {
$(".tabs").tabs();
});
我的問題是,我試圖讓每個標籤頁面加載到內容面板上的點擊相關鏈接。首先,我只是試圖通過單擊鏈接來設置所有面板的html。從下面的代碼,如果我使用方法1,它適用於所有鏈接。但是,如果我使用方法2,它不會 - 但是只有可用於選項卡中的鏈接(即您單擊以選擇選項卡的標籤)。
方法1(適用於所有鏈接所有的時間,但不會被應用到被這就是所謂的後添加鏈接):
$("a").click(function() {
$("#ranges, #collections, #designs").html("clicked");
});
方法2(適用於未「tabified所有鏈接「):
$("a").live("click", function() {
$("#ranges, #collections, #designs").html("clicked");
});
有誰知道它爲什麼會這樣?我真的想讓方法2正常工作,因爲可能有鏈接,我需要添加點擊事件,在頁面最初加載後添加的事件。
由於提前,
理查德
PS是的函數調用.live
和.click
無一不是$(document).ready()
功能,之前有人說,這可能是問題 - 否則它不會在工作所有..
編輯:
我想出了該解決方案涉及在錨(數據-URL)和下面的代碼的額外屬性(輸出4 04如果頁面無法加載,則不會發現錯誤)。我的目標是在接下來的幾周/幾個月內擴展這個功能,使其更加強大。
$(".tabs").tabs({
select: function (event, ui) {
$(ui.panel).load($(ui.tab).attr("data-url"), function (responseText, textStatus, XMLHttpRequest) {
switch (XMLHttpRequest.status) {
case 200: break;
case 404:
$(ui.panel).html("<p>The requested page (" + $(ui.tab).attr("data-url") + ") could not be found.</p>");
break;
default:
$(ui.panel).html("<p title='Status: " + XMLHttpRequest.status + "; " + XMLHttpRequest.statusText + "'>An unknown error has occurred.</p>");
break;
};
});
}
});
謝謝。我現在正在研究這個問題 - 無法弄清楚如何將其應用到我想要做的事情上,但我相信我會弄清楚什麼。如果我這樣做會再次在這裏發佈,並標記爲答案。 – ClarkeyBoy 2011-01-28 06:54:26
您是否試圖從其他來源(AJAX)加載內容到標籤內容區域? jQuery UI選項卡有一個方法來做到這一點。 – roflwaffle 2011-01-28 06:56:23