【问题标题】:Jquery Confliting with Magento PrototypeJquery 与 Magento 原型冲突
【发布时间】:2014-09-22 15:55:38
【问题描述】:

我想在 magento 产品页面中使用 Foundation 5 Reveal 模式。

我在页脚中添加了 jquery 和 Foundation.js,并从 footer.phtml 调用 Foundation

<script src="js/vendor/jquery.js"></script>

<script src="js/foundation.min.js"></script>

<script>

  $(document).foundation();

</script>

并在head.phtml中添加了modernizr和css文件

 <link rel="stylesheet" href="css/foundation.css" />
 <script src="js/vendor/modernizr.js"></script>

然后我在产品页面上添加了标记,效果很好。但它与 magento 原型冲突。

然后我刚刚完成jQuery.noConflict(); 然后显示模型停止工作。我以为我是因为我同时加载了两个版本,所以我删除了 jquery lib 中的构建,然后原型再次停止工作。

我还处理了从 head 到 local.xml 、 page.xml 的 jquery 调用,但没有运气!

错误代码:未捕获的 TypeError:无法读取未定义原型的属性“配置”:828

有人知道我在做什么问题或错误吗?

提前非常感谢!

【问题讨论】:

  • 你把noConflict电话放在哪里了?
  • 我在页脚、页眉、页面和本地设置了 noconflict 调用,但它在任何地方都不起作用!

标签: javascript jquery html magento


【解决方案1】:

两件事可能会有所帮助:

  1. 拨打noConflict 的位置很重要。如果您网站的其余部分使用 PrototypeJS,那么我会这样做:

    <script src="js/vendor/jquery.js"></script>
    <script>jQuery.noConflict();</script>
    <script src="js/foundation.min.js"></script>
    
  2. 已经完成noConflict,当你想使用jQuery时,你必须使用jQuery*而不是$

    <script>
    
      jQuery(document).foundation();
    
    </script>
    

(* 你没有,你可以使用noConflict的返回值来创建一个别名。例如var $j = jQuery.noConflict();会让你使用$j而不是@ 987654331@.)

【讨论】:

  • 好吧,我想让你知道,每当我让 jquery 原型停止工作时!所以我在head中添加了noconflit,但没有用,我把它放在页面中不起作用,我把它放在本地但不起作用!
  • @YanHayie:如果在添加 jQuery(如上)后立即调用noConflict,它不能与 PrototypeJS 冲突。其他事情正在发生。
  • 嗯..我明白了。但添加这里是错误代码: Uncaught TypeError: Cannot read property 'config' of undefined prototype.js:828 Anything?
  • @YanHayie:如果你有我上面显示的noConflict,添加 jQuery 不会实现这一点。你能产生一个MCVE 吗?我认为这几乎是解决这个问题的唯一方法。我们需要问题中没有的信息,而这些信息对您来说可能并不明显。
  • 好吧,您认为jquery-1.8.3.min.js 中的构建有问题吗?我为基础添加了 jquery-2x
猜你喜欢
  • 2013-11-08
  • 2014-03-10
  • 2011-03-08
  • 2010-11-01
  • 2012-01-09
  • 2011-01-29
  • 2010-09-13
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多