0

JSON に問題があります。これは次のようになります - 抜粋です:

{
    "Pizza Margharita": {
        "id": "0",        
        "price1": "4,50"        
    },
    "Pizza Caprese ": {
        "id": "1",
        "price1": "4,00"
    },
    "Pizza Salami": {
        "id": "2",
        "price1": "4,00"
    }
}

私の関数は次のようになります。

$(function() {
    $.getJSON('data/food01.json', function(data) {

        $.each(data, function(name, price) {
            $('section#food01').find('ul').append('<li><a id="+order' + price.id + '" href="#order"><h3>' + name + '</h3><span>' + price.price1 + '</span></a></li>');
        }); <!-- /each -->



        $('#food01 li a').live('click', data, function(name, price) {
            var foo = name;
            $('#foodname h3').append(foo);
        });
    });
});

を使用して$.each()、JSON からデータを取得し、それを<li>-elements に追加します。それはうまくいっています。ここで、$getJSON 関数にまだ含まれている別の関数で値を取得したいと考えています。それは可能ですか、それとも何が間違っていますか? 誰かが私を助けることができれば素晴らしいでしょう - どうもありがとう!

4

4 に答える 4

0

イベントの data プロパティを介して渡される、liveまたはonアクセスできる data 引数。たとえば、 を反復処理する方法の例を次に示しdataます。

    $('#food01 li a').on('click', null, data, function(e) {
        $.each(e.data, function(name, price){
            var foo = name;
            $('#foodname h3').append(foo);
        });
    });

で何をする必要があるのか​​ わかりませんdataが、これは簡単に適応できます。

于 2012-11-06T17:35:44.623 に答える
0

できます!

$(function() {
     $.getJSON('data/food01.json', function(data) {

         $.each(data, function(name, price) {
              $('section#food01').find('ul').append('<li><a id="order'+price.id+'" href="#order"><h3>'+name+'</h3><span>'+price.price1+'</span></a></li>');
              var foodname = name;
              var id = price.id;
              $('#food01 li a').live('click', function(name, price){
                  var indexNo = $(this);
                  var indexNo2 = ($('#food01 a').index(indexNo));

                  if(indexNo2 == id) {
                         $('#foodname h3').append(foodname);
                  }<!-- if -->
              });<!-- /live -->
          });<!-- /each -->

     });<!-- /getJSON -->
   });<!-- /function -->
于 2012-11-06T18:48:05.217 に答える
0

関数内でデータにアクセスできるため、データを渡す必要はありません。

$(function() {
        $.getJSON('data/food01.json', function(data) {

            $.each(data, function(name, price) {
                $('section#food01').find('ul').append('<li><a id="+order' + price.id + '" href="#order"><h3>' + name + '</h3><span>' + price.price1 + '</span></a></li>');
            }); <!-- /each -->



            $('#food01 li a').live('click', function(name, price) {
                //you can just access data here...
    var foo = name;
                $('#foodname h3').append(foo);
            });
        });

});
于 2012-11-06T17:23:24.083 に答える
0

これが私の答えの試みです:

$(function() {

    $.getJSON('data/food01.json', function(data) {

        $.each(data, function(name, price) {

            $('section#food01').find('ul').append('<li><a id="+order' + price.id + '" href="#order"><h3>' + name + '</h3><span>' + price.price1 + '</span></a></li>');

            if( /* some condition like price > 100 or name == 'Margharita'*/ ){
                $('#food01 li a').on('click', function() {
                    $('#foodname h3').append(name);
                }); // click 

            }  // if

        }); // each

    }); // getJSON

}); // ready
于 2012-11-06T17:51:23.200 に答える