我有三個3(jquery的)選項卡:如何處理每個jquery選項卡的不同json數據?
- 概述
- 定價
- 目的地信息
每個選項卡都具有完全不同的數據。我可以在href中指定一個URL來進行AJAX調用。但是,如何處理爲每個選項卡收到的數據(以便我可以根據上下文渲染它們)?
我應該使用load事件來處理數據嗎?如果是這樣,我怎樣才能得到在加載事件返回的json數據的句柄?
我有三個3(jquery的)選項卡:如何處理每個jquery選項卡的不同json數據?
每個選項卡都具有完全不同的數據。我可以在href中指定一個URL來進行AJAX調用。但是,如何處理爲每個選項卡收到的數據(以便我可以根據上下文渲染它們)?
我應該使用load事件來處理數據嗎?如果是這樣,我怎樣才能得到在加載事件返回的json數據的句柄?
我有jQuery UI的經驗不多,但我知道你可以從一個AJAX請求的JSON(here)獲取數據:
$.ajax({
url: "http://example.com/page.html",
dataType: "json",
}).done(function (data) {
// Do some stuff with the data
});
或者你可以使用jQuery.getJSON。 然後總是有jQuery.parseJSON。
編輯:至於我能弄清楚,這是最好的,你會得到:
$(window).load(function(){
$(function() {
$("#tabs").tabs({
ajaxOptions: {
error: function(xhr, status, index, anchor) {
$(anchor.hash).html(
"Couldn't load this tab. We'll try to fix this as soon as possible. " +
"If this wouldn't be a demo.");
},
success: function(jsonObject, status) {
// Code
},
dataType: "json"
}
});
});
});
這樣,JSON需要包括你一起工作的標籤。這會導致一個相當不雅的解決方案,因爲你將不得不打開從json返回的tab值。看起來好像Tab API並不適合任何人自己處理顯示過程。我看到其他三個選項:自己重做Tab API;破解API來做你的事情;或不喜歡get_tab_contents.php?tabid=someid&json=somepath
當然可以使用AJAX/JSON加載數據。我關心的是處理返回的數據。如果我指定的ajaxOptions成功的功能,那麼我怎麼知道是誰發送的請求,並且標籤更新 – brainydexter
你能,或者這將是不切實際的,實現爲每個標籤不同的功能?此外,據我所知,'ajax.done(FUNC)'有異曲同工之妙如''ajaxOptions' success'。 –
@Firelizzard由於jQuery UI的選項卡的功能,它是不可能給每一個它自己的成功方法選項卡。但是,(@brainydexter),請嘗試控制檯。記錄(this)在成功處理程序中,它可能會有一些信息可以使用,例如請求數據的url。 –
也許我在閱讀這個錯誤,但是......你可以在你的AJAX響應中使用帶有某種標記的開關。
/*
Your AJAX response could be something like:
data.type = destination, overview, pricing etc
data.content = The actual content you are expecting
*/
var data=/* Your ajax call */
switch(data.type)
{
case 'destination':
/* Handle the rest of the data object*/
$('div').html(data.content);
break;
case 'overview':
break;
case 'pricing':
break;
}
我也在探索數據類型被返回的思路,但我相信必須有一個更清晰的方式來處理這個問題。另外,你認爲我可以以任何方式利用'load'事件嗎? – brainydexter
我用自帶的WebKit瀏覽器的檢查一些(主要是與Chrome瀏覽器,您必須啓用它專門在Safari)來調試我的JavaScript,看看究竟什麼是一個變量。實現負載處理程序,在函數中放置一個斷點,然後使用檢查器告訴我變量中存在什麼(它會顯示它的所有參數,event.somethings等)。 –
@FireLizzard是的,這就是我自己發展的方式。我是後端開發人員,因此很難弄清楚前端細節,但檢查員爲我節省了一天的時間。至於加載函數,我不知道如何獲得給定選項卡返回的json數據的句柄。我知道的唯一方法是在'success'事件處理程序中處理返回的json數據。但是我沒有那裏的選定標籤的引用。 – brainydexter