37

私はrequireJSを使用しており、jQueryのCDNバージョンを使用するための最良の方法を知りたいです。1.7バージョンは「AMD」であると聞きましたが、これは役立つはずですが、簡単な例を見つけることができません。RequireJSの達人が私を助けてくれることを願っています。

4

4 に答える 4

46

jQuery 1.7はそれ自体を「jquery」という名前でAMDモジュールとして登録するため、パスconfigを使用して「jquery」のマッピングを作成する必要があります。

requirejs.config({
  paths: {
    'jquery' : 'https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min'
  }
});

require(['jquery'], function($) {
  //$ points to jQuery
});

ただし、RequireJSはモジュールを非同期で順不同でロードするため、呼び出しにラップされていない使用するjQueryプラグインがある場合define(['jquery'], function ($){ /* plugin code goes here */ });、プラグインはjQueryがロードされる前に実行される可能性があることに注意してください。

jQueryに依存しているが、呼び出しでラップされないファイルを処理する方法については、 require-jqueryプロジェクトのREADMEを参照してください。define()

于 2011-11-10T23:36:43.810 に答える
9

@jrburkeの答えは私にはうまくいきません。RequireJS api docによると、パスにファイル拡張子を含めないでください。だからここに動作するコードがあります:

requirejs.config({
    paths: {
        'jquery': 'https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min'
    }
});

require(['jquery'], function($) {
    //$ points to jQuery
});

jsfiddleの実例があります:http: //jsfiddle.net/murrayju/FdKTn/

于 2013-03-26T15:57:40.293 に答える
3

モジュールの依存関係として含めることができますが、少し不安定です。例えば

define([
"order!http://code.jquery.com/jquery-1.7.min.js"
], function($) {
})

2つの理由であまり良くありません

1)jqueryファイル自体はモジュールではないため$、関数から取得するのはjqueryではありません

2)order!プラグインはCDNバージョンのスクリプトではうまく機能しません。Requirejsの順序は、優先度の設定とCDNの依存関係では機能しないを参照してください

まだアップグレードしていないため、これを「実際の」プロジェクトで使用する機会はまだありませんが、テストの結果、スクリプトタグにjqueryを含めるのが最善の方法であることがわかりました。これで、うまく機能します。モジュールへの依存関係として。うまくいけば、次の小さなサンプルが役立つでしょう:

<html>
<head>
    <title>Index2</title>
    <script src="../../scripts/libraries/jquery.js" type="text/javascript"></script>
    <script src="../../scripts/libraries/require.js" type="text/javascript"></script>
    <script type="text/javascript"">

        require(
            {baseUrl: 'scripts'}, 
            ['jquery'], 
            function (dollarSign) {
                console.log(dollarSign('div').html('hi'));
            });       
    </script>

</head>
<body>
    <div>

    </div>
</body>
</html>
于 2011-11-09T21:19:33.347 に答える
2

まず、jQueryCDNにはプロトコル相対URLを使用することをお勧めします。次に、CNDが停止している場合は、CDNとローカルの場所で配列の値を使用してローカルファイルをロードします。必要な数のCDNURLを使用できます。恐れることはありません。CDNから正常にダウンロードした場合、ローカルの場所から2番目のファイルをロードする必要はありません。

requirejs.config({
  paths: {
    'jquery': ['//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min', 'lib/jquery-1.10.2.min']
  }
});
于 2014-01-20T13:35:36.113 に答える