私のコーディングは基本的に、ユーザーがオプション製品の [今すぐ購入] をクリックすると、オプション ボックスがポップアップ表示されます (例: 色の選択)。
この js をロードすると、次のように表示されます。 Uncaught TypeError: Cannot call method 'down' of undefined.
今すぐ購入をクリックすると、次のように表示されます。 Uncaught TypeError: Cannot call method 'addToCartHandle' of undefined.
<script type="text/javascript">
var urlAction = '<?php echo $this->getActionUrlBuy() ?>';
var groupdeal = new GroupDeal('deal-ajaxcart-load-ajax','deal-ajaxcart-pop-up','deal-ajaxcart-content','','div[class="block block-cart"]',$$('.header').first().down('ul.links'),'ajaxcart'); //error here
groupdeal.addToCartHandle = function(requestUrl, product_id, deal_id){
groupdeal.url = urlAction+'?productId='+product_id;
$('deal-ajaxcart-load-ajax').show();
new Ajax.Request(urlAction,{
method: 'get',
parameters: {productId:product_id, dealId:deal_id},
onException: function (xhr, e){
$('deal-ajaxcart-load-ajax').hide();
$('deal-ajaxcart-pop-up').hide();
window.location.href = groupdeal.url;
},
onComplete: groupdeal.ajaxOnComplete
});
}
groupdeal.ajaxOnComplete = function(xhr){
if (xhr.responseText.isJSON()){
var response = xhr.responseText.evalJSON();
groupdeal.popupContentWindow(response);
}
}
function openPopup(product_id, deal_id){
groupdeal.addToCartHandle("",product_id, deal_id);//error here
}
function closeDealAjaxPopup(){
$('deal-ajaxcart-load-ajax').hide();
$('deal-ajaxcart-pop-up').style.display = "none";
}
function ajaxMoreTemplateJs(){
if ($('deal-ajaxcart-content').down(".paypal-logo")) $('ajaxcart-pop-up').down(".paypal-logo").hide();
if ($('deal-ajaxcart-content').down(".add-to-links")) $('ajaxcart-pop-up').down(".add-to-links").hide();
}
</script>
問題は、古いサイトで実行すると正常に動作することです。しかし、新しいサイト(新しいスキン、新しい機能)に移動すると、機能しなくなります。それを修正する方法について何か考えはありますか?