我的编码基本上会弹出一个选项框供用户点击立即购买选项产品(例如:选择颜色)。
当我加载这个js时,它显示: 未捕获的TypeError:无法调用未定义的方法'down'。
当我点击立即购买时,它会显示: 未捕获的TypeError:无法调用未定义的方法'addToCartHandle'。
<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>
问题是,当它在旧网站上运行时,它运行正常。但是当搬到新的网站(新皮肤,新功能)时,它无法工作。有关如何修复的想法吗?
答案 0 :(得分:0)
从快速查看我可以说,你现在点击立即获得的错误是因为groupdeal从未从第一个错误中定义。在我看来,你应该看一下.header的调用,前面有两个$$(应该是一个)作为你的答案,因为看起来特定的方法不是从另一个站点计算的。 2¢