問題: 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);
}
});
}
}