3つの(jquery)タブが3つあります:
- 概要
- 価格
- 目的地情報
これらの各タブには、まったく異なるデータがあります。href で URL を指定して、AJAX 呼び出しを行うことができます。ただし、これらの各タブで受信したデータをどのように処理すればよいでしょうか (コンテキストに応じてレンダリングできるようにするため)。
loadイベントを使用してデータを操作する必要がありますか? その場合、 load イベントで返された json データのハンドルを取得するにはどうすればよいですか?
3つの(jquery)タブが3つあります:
これらの各タブには、まったく異なるデータがあります。href で URL を指定して、AJAX 呼び出しを行うことができます。ただし、これらの各タブで受信したデータをどのように処理すればよいでしょうか (コンテキストに応じてレンダリングできるようにするため)。
loadイベントを使用してデータを操作する必要がありますか? その場合、 load イベントで返された json データのハンドルを取得するにはどうすればよいですか?
jQuery UI の経験はほとんどありませんが、AJAX リクエストから JSON としてデータを取得できることは知っています (こちら)。
$.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 から返されたタブ値をオンにする必要があるため、かなり洗練されていないソリューションになります。タブ API は、表示プロセスを自分で処理するためのものではないようです。他に 3 つのオプションがあります。タブ API を自分でやり直します。APIをハックしてあなたのことをしてください。または次のようなことをしますget_tab_contents.php?tabid=someid&json=somepath
たぶん私はこれを間違って読んでいますが.... 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;
}