7

我阅读了如何正确地将 jquery 包含到 magento 的指南

  1. 包括图书馆
  2. 包括无冲突脚本
  3. 转到 jquery 调用的 $ 并将其更改为 Jquery

使用一个扩展程序非常容易。但是,就我而言,我安装了 3 个不同的扩展,并且它们都希望包含 Jquery。当然,我不想复制这个库并调用它 3 次。起初,我想我可以在<head>标签的第一行手动包含 jquery 库,并删除 3 个扩展中的所有 jquery 包含。但它不起作用,通常只有其中一个起作用。如果我允许所有 3 个扩展都包含 jquery,那么它们都可以工作。如何使商店中的所有 jquery 扩展都工作,而只包含一次 libray?

有人建议我应该在顶部包含所有 jquery 依赖的脚本<head>,对吗?但是,问题是我不知道如何在 Magento 中使用 actionaddJsaddItem. 没有像 before 或 after 一样的参数<block>

4

1 回答 1

3

如果您想强制方法中包含的 Javascript 的加载顺序addJs,最简单的方法是使用<params>标签提供名称,例如:

<action method="addJs"> <!-- Loads second -->
    <script>vendor/jquery-1.6.2.min.js</script>
    <params><![CDATA[name="jquery2"]]></params>
</action>

<action method="addJs"> <!-- Loads first -->
    <script>vendor/jquery-1.8.2.min.js</script>
    <params><![CDATA[name="jquery1"]]></params>
</action>

Magento 将根据提供的名称按字母升序加载 Javascript 文件。

但是,在您的情况下,找出为什么扩展和各种 jQuery 文件不能很好地相互配合可能会更有成效。

  • 每个扩展都依赖于特定版本的 jQuery 吗?
  • 他们是否使用不同的无冲突方法(即,一种使用直接调用jQuery.noConflict(),另一种使用类似的方法var $j = jQuery.noConflict())?
  • 它们都使用相同的全局变量名吗?
于 2013-05-05T13:05:35.027 回答