javascript - Jquery 与 Magento 原型(prototype)的冲突

标签 javascript jquery html magento

我想在 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原型(prototype)冲突。

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

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

错误代码:未捕获类型错误:无法读取未定义的prototype.js的属性“config”: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。)

关于javascript - Jquery 与 Magento 原型(prototype)的冲突,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25978277/

相关文章:

javascript - 在两个 Javascript 文件之间共享常量值

javascript - 如何将文本从 View 传递到 JavaScript

javascript - 如何使用 jquery 将 CSS 添加到元素,仅使用一个类来标识该元素,并且仅当 innerHTML 中的时间在现在的 5 分钟内?

javascript - 防止或删除 Bootstrap 模式中的全屏覆盖

javascript - ul 中的交换列表和事件元素位置保持不变

javascript - 为什么我的discord.js 机器人没有响应 ";say (content)"

javascript - 在 Breeze 实体中分配新值

javascript - jqgrid 显示不在 json 中的静态列

jquery - Phoenix channel 从项目外的客户端发送消息

javascript - 如何使用 jQuery 调用 vbscript 函数?