3

3つの(jquery)タブが3つあります:

  • 概要
  • 価格
  • 目的地情報

これらの各タブには、まったく異なるデータがあります。href で URL を指定して、AJAX 呼び出しを行うことができます。ただし、これらの各タブで受信したデータをどのように処理すればよいでしょうか (コンテキストに応じてレンダリングできるようにするため)。

loadイベントを使用してデータを操作する必要がありますか? その場合、 load イベントで返された json データのハンドルを取得するにはどうすればよいですか?

4

2 に答える 2

2

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

于 2012-06-04T18:30:11.973 に答える
1

たぶん私はこれを間違って読んでいますが.... 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;
}
于 2012-06-04T18:29:22.690 に答える