7

jqueryをmagentoに適切に含める方法のガイドを読みました

  1. ライブラリを含める
  2. 競合スクリプトを含めない
  3. $ of jquery 呼び出しに移動し、Jquery に変更します

これは、1 つの拡張機能で非常に簡単です。ただし、私の場合、3 つの異なる拡張機能をインストールしましたが、それらすべてに Jquery を含めたいと考えています。もちろん、このライブラリを複製して 3 回呼び出したくはありません。<head>最初は、タグの最初の行に jquery ライブラリを手動でインクルードし、3 つの拡張機能に含まれるすべての jquery を削除できると思います。しかし、それはうまくいきません。通常、そのうちの 1 つだけが機能します。3 つの拡張機能すべてに jquery を含めることを許可すると、すべて機能します。ライブラリを1回だけ含めて、ストア内のすべてのjquery拡張機能を機能させるにはどうすればよいですか?

jquery に依存するすべてのスクリプトを の先頭に含めるべきだと誰かが提案しましたが<head>、そうですか? ただし、問題は、Magento でスクリプトをアクションaddJsまたはaddItem. <block>?のように before や after のようなパラメーターはありません。

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 に依存していますか?
  • それらは異なる noconflict メソッドを使用していますか (つまり、1 つは への直接呼び出しを使用しjQuery.noConflict()、もう 1 つは のようなものを使用していますvar $j = jQuery.noConflict())?
  • それらはすべて同じグローバル変数名を使用していますか?
于 2013-05-05T13:05:35.027 に答える