2012-06-16 35 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();'。 –