Jquery与Magento原型冲突

Jquery Confliting with Magento Prototype

本文关键字:冲突 原型 Magento Jquery      更新时间:2023-09-26

我想在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>

然后我在产品页面上添加了标记,效果非常好。但它与马根托原型存在冲突。

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

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

错误代码:未捕获类型错误:无法读取未定义原型的属性"config"。js:828

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

非常感谢!

有两件事可能会有所帮助:

  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而不是jQuery。)