0

問題: Magento で製品をカートに追加する前に数量を増やそうとしていますが、次のコードは IE9 を除くすべてのブラウザーで機能します。私は開発者ではないので、助けを求めています。

想定: IE9 で製品をカートに追加する前に、数量を追加できるようにします。

デバッグ時のエラー: "AmQtyObj.increment()" エラー 'AmQtyObj' は未定義です。

// 商品数を増やすためのクラス

AmQty = Class.create();
AmQty.prototype = 
{
initialize : function(min) {
    this.min = min;
    this.input = $('am-input');
},

increment: function() {
    this.input.value++; 
    this.paint();
},

decrement: function() {
     if(this.input.value > this.min) {
         this.input.value--;
         this.paint();
     }

},

update: function() {
        postData = "update_cart_action=update_qty&" + this.input.name + '=' + this.input.value;           
        new Ajax.Request(AmAjaxObj.updateUrl, {
            method: 'post',
            postBody : postData,
            onCreate: function()
            {
               AmAjaxObj.showAnimation();
            }.bind(this),

            onComplete: function()
            {
              AmAjaxObj.hideAnimation();
            }.bind(this),

            onSuccess: function(transport) {
                var url = AmAjaxObj.url.replace(AmAjaxObj.url.substring(AmAjaxObj.url.length-6, AmAjaxObj.url.length), 'data');//    replace ajax to count
                new Ajax.Request(url, {
                    method: 'post',
                    onSuccess: function(transport) {
                        if (transport.responseText.isJSON()) {
                            var response = transport.responseText.evalJSON();
                            if($('amcart-count') && response.count) $('amcart-count').innerHTML = response.count;
                            var price = $$('#messageBox span.am_price')[0];
                            if(price && response.price) price.innerHTML = response.price;
                        }       
                    }.bind(this),
                    onComplete: function() {
                           AmAjaxObj.updateLinc(" (" + $$('#amcart-count a')[0].text + ")");
                    }
                });
                AmAjaxObj.updateCart();            
                AmAjaxObj.hideAnimation();
                new Effect.Highlight(this.input, { startcolor: '#ffff99', endcolor: '#a4e9ac', restorecolor : '#a4e9ac'});
                $('am-qty-button-update').hide();
                this.input.removeClassName('focus'); 

            }.bind(this),

            onFailure: function()
            {
                AmAjaxObj.hideAnimation();
            }.bind(this)    
        });   
},

paint: function() {
     new Effect.Highlight('am-input', { endcolor: '#ffff99', restorecolor : '#ffff99'});
     $('am-input').addClassName('focus');  
     $('am-qty-button-update').show();
     this.clearTimer();    
},

clearTimer: function() {
    jQuery(function($) {
        var elem= $('#confirmButtons .button:last-child');
        var value = elem.text(); 
        var sec = parseInt(value.replace(/\D+/g,""));
        if(sec) {
            value =  value.replace('(' + sec + ')', '');
            elem.text(value);
            clearInterval(document.timer);    
        }
    });    
}

}

4

0 に答える 0