0

私のコーディングは基本的に、ユーザーがオプション製品の [今すぐ購入] をクリックすると、オプション ボックスがポップアップ表示されます (例: 色の選択)。

この 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>

問題は、古いサイトで実行すると正常に動作することです。しかし、新しいサイト(新しいスキン、新しい機能)に移動すると、機能しなくなります。それを修正する方法について何か考えはありますか?

4

1 に答える 1

0

ざっと見てみると、[今すぐ購入] をクリックしたときに表示されるエラーは、最初のエラーで groupdeal が定義されていないことが原因であると言えます。特定のメソッドが他のサイトから計算されていないように見えるため、答えを得るには、前に 2 つの $$ を付けた .header の呼び出しを確認する必要があるようです。2¢

于 2013-06-25T04:01:58.493 に答える