0

オブジェクト内で使用される Ajax レスポンスを取得する際に問題が発生しています。

function cart(){
    this.items = [];

    this.addItem = function(item){
        //sorts and adds items to this.items
    }

    this.retrieveCart = function(){
        var itemArray = JSON.parse($.cookie('cartItems'));
        var itemNumbers = [];
        var outData = [];
        for(var i in itemArray){
            itemNumbers.push(i);
        }
        $.post('beta-category-ajax.html', {'get' : itemNumbers.join(",")},
        function(data){
            for(var i in data){
                var currentItemNumber = data[i].I;
                var quantity = itemArray[currentItemNumber];
                data[i].Quantity = quantity;
                outData.push(data[i]);
            }
        });
        this.addItem(outData);
    }

this.addItem(Array)Ajax を非同期で使用しながら実行できるようにしたいのですが、このスレッドjQuery AJAX Handling Problemを見ましたが、これが私に当てはまる場合はそうではありません。

事前に助けてくれてありがとう:)

4

1 に答える 1

3

私はあなたが何を求めているのか完全にはわかりませんがthis.addItem、コードが現在書かれている方法では機能しないようです。this$.postに渡す匿名関数のスコープの変更の値。への参照をキャッシュしthisますretrieveCart

this.retrieveCart = function () {
  var self = this;
  ...
  $.post(..., function () { 
    ...
    self.addItem(outData);
  });
}
于 2013-03-19T15:19:44.067 に答える