2012-06-16 72 views
0

所以我試圖獲得下面的jQuery代碼加載我們的onepage結帳頁面...基本上它應該顯示一個文本字段輸入時的相關div ...但是,它只是不會加載。我試過它的jsfiddle,它工作正常,但一旦在Magento的,它不會工作...使用Magento,我如何獲得一個jQuery腳本來加載?

<script> 
    jQuery.noConflict(); 

    jQuery(window).load(function(){ 
jQuery(".show-hidden-div").click(function() { 
    jQuery('.hidden-div').css('display','none'); 
    var inputId = $(this).attr('id'); 
    jQuery("#tip-"+inputId+"").show(); 
}); 

}); 
</script> 

上面的代碼被直接輸入到head.phtml

jQuery代碼文件

下面就來顯示它如何工作的jsfiddle鏈接.... http://jsfiddle.net/PeTUy/8/

任何見解將是有益的!

回答

0

但是關於向的Magento和jQuery和原型用法:

  1. 包括jQuery的之前的任何原型腳本
  2. 添加jQuery.noConflict();直接到你的jQuery的文件,以確保它的結束原型腳本之前總是被調用,並分離出正常

你需要這個以避免protptype和jQuery的衝突,因爲它們都種族爲$作爲方法名

+0

嗨安東:我沒有問題,使用原型,但要安靜誠實,我真的不知道太多關於Prototype ...我試着創建一個jsfiddle你提供的代碼,但它似乎沒有工作... http://jsfiddle.net/X6HgY/ –

3

的Magento沒有按將jQuery默認爲默認值,您需要首先包含jQuery源代碼。

如果你不包括jQuery的已經,這裏有一個鏈接,可以幫助:

http://www.magentocommerce.com/boards/viewthread/268482/

假設你已經做到了這一點,只是擡起頭,使用noConflict模式的jQuery是對的好處重新定義用於選擇元素的變量,就像這樣:

var $j = jQuery.noConflict(); 

,然後使用附加$ J無論你需要的是這樣的:

$j(document).ready(function(){ 

    $j(".selector).functionName(); 

}); 

這樣,jQuery使用的標準「$」變量與使用相同變量的原型之類的東西沒有衝突。

+0

MIKE ...我在哪裏添加'var $ j = jQuery.noConflict();'?我只是將它添加到我們加載的jquery文件的底部?還是應該將其添加爲我們正在使用的腳本的一部分? –

+0

我建議將它添加爲初始化腳本的一部分,並在加載jQuery後直接加載該腳本。我在'var/www/magento/js'中使用了一個名爲'jquery-init.js'的文件來執行此操作。確保你在這個文件的最頂端添加'var $ j = jQuery.noConflict();'。 –