2012-02-28 78 views

回答

1

您沒有在所有頁面上正確加載jQuery。這就是爲什麼你得到'jQuery未定義'的錯誤。

我對Magento Go並不熟悉 - 所以您需要找出產品頁面包含腳本的原因,但其他頁面不包含。在非託管解決方案中,這意味着要編輯[layout] .xml文件。不知道這是否對你有幫助。

+0

它們在引用jQuery的產品頁面上有不同的javascript,而在其他頁面上則沒有。我想我必須沒有它。 – 2012-02-28 18:29:00

0

我知道這是一個古老的問題,但看到因爲它沒有回答我想我會給我的解決方案。弄清楚這是令人沮喪的。

爲了澄清這個問題,Magento Go有一個基本版本的jQuery它使用。但是,它不會在每個頁面上加載庫。就我而言,它只在產品頁面上加載。您可以添加自己的版本,並在noConflict()中運行它,方法是將代碼添加到設計配置中的標題部分。然而,如果你只想在你需要的時候加載jquery,那麼只有在Magento Go沒有加載它的頁面上,你可以這樣做:

創建一個靜態塊,並放入以下代碼:

代碼最初發現於 http://forum.jquery.com/topic/loading-jquery-if-undefined和修改 我需要

<script type="text/javascript">// <![CDATA[ 
/******** Load jQuery if not present *********/ 
if (typeof jQuery === "undefined") { 
    var script_tag = document.createElement('script'); 
    script_tag.setAttribute("type","text/javascript"); 
    script_tag.setAttribute("src", "//ajax.googleapis.com/ajax/libs/jquery/1.10.1/jquery.min.js") 
    script_tag.onload = customJQ; 
    script_tag.onreadystatechange = function() { //Same thing but for IE 
     if (this.readyState == 'complete' || this.readyState == 'loaded') customJQ(); 
    } //onreadystatechange.function 
    document.getElementsByTagName("head")[0].appendChild(script_tag); 
    } else { 
     customJQ(); 
} //if.jQuery 

function customJQ() { 
    jQuery.noConflict(); 
    jQuery(document).ready(function($) { 
     ... your query here ... 
    }); 
} 
// ]]></script> 

然後創建一個加載在所有頁面此塊前端應用程序,並把它在「頁面底部」塊參考。爲了讓Magento Go有機會加載腳本,我把它放在了底部,這可能不是必需的。

如果jquery已經加載,它只會運行你的腳本。如果沒有加載,jquery將被加載,並且一旦加載完成後腳本就會執行。

相關問題