如何解决“无法调用方法'下来'未定义”的错误?

时间:2013-06-25 03:47:29

标签: javascript jquery ajax magento

我的编码基本上会弹出一个选项框供用户点击立即购买选项产品(例如:选择颜色)。

当我加载这个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>

问题是,当它在旧网站上运行时,它运行正常。但是当搬到新的网站(新皮肤,新功能)时,它无法工作。有关如何修复的想法吗?

1 个答案:

答案 0 :(得分:0)

从快速查看我可以说,你现在点击立即获得的错误是因为groupdeal从未从第一个错误中定义。在我看来,你应该看一下.header的调用,前面有两个$$(应该是一个)作为你的答案,因为看起来特定的方法不是从另一个站点计算的。 2¢