質問
requirejsを使用してプラグインをロードしようとしていますが、エラーが発生する場合があります。「$ .fn is undefined」ですが、ページをリロードすると、エラーが消えてしまいます。私はこのようなライブラリをロードしています:
require(["jquery-1.4", "/script/jquery.autoSuggest.packed.js"], function($) {
$(function() {
//code
});
});
このエラーを引き起こすこの実装に何か問題があるかどうかを確認できますか? JSがページに追加されている必要があります。
<script type="text/javascript" src="http://website.co.uk/frameworks/requirejs/0.2.4/sharedmodules/require.js">
</script>
<script type="text/javascript"> requireMap = {
"jquery-1.4":"http://website.co.uk/sharedmodules/jquery-1.4"
};
require({ baseUrl: 'http://website.co.uk/', paths: requireMap });
</script>
私が使用しているフレームワークの一部であるため、これは変更できません。
助言がありますか?
ありがとう!
解決
注文プラグインが削除されます。次のようにシムの読み込みを使用してください
requirejs.config({
paths: {
'jquery': 'https://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min',
'bootstrap': '../bootstrap/js/bootstrap.min',
'select2': 'vendor/select2',
'jshashtable': 'vendor/jshashtable-2.1',
'jquery.numberformatter': 'vendor/jquery.numberformatter-1.2.3.min',
'jq-datepicker': 'vendor/bootstrap-datepicker',
'jq-datepicker.da': 'vendor/bootstrap-datepicker.da'
},
// Use shim for plugins that does not support AMD
shim: {
'bootstrap': ['jquery'],
'select2': ['jquery'],
'jq-datepicker': ['jquery'],
'jshashtable': ['jquery'],
'jquery.numberformatter': ['jquery', 'jshashtable']
},
});
他のヒント
あなたはを使用したいと思うでしょう プラグインを注文します. 。デフォルトでは、できるだけ速くスクリプトをロードする必要があり、故障してロードできます。ただし、Orderプラグインはスクリプトのロードの順序を維持します。
Optimizerを使用してスクリプトを最適化する場合は、jqueryとプラグインの両方を最適化されたスクリプトに含めてください。
チェックアウトしたい場合があります https://github.com/jquery-boilerplate/patterns
requirejsで動作する優れたボイラープレートjQueryプラグインコードがあります。
これらのパターンが機能する前に、JQueryを1.7にアップグレードする必要があるかもしれません。
所属していません StackOverflow