私はrequireJSを使用しており、jQueryのCDNバージョンを使用するための最良の方法を知りたいです。1.7バージョンは「AMD」であると聞きましたが、これは役立つはずですが、簡単な例を見つけることができません。RequireJSの達人が私を助けてくれることを願っています。
4 に答える
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()
@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/
モジュールの依存関係として含めることができますが、少し不安定です。例えば
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>
まず、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']
}
});