我想加載一個使用requirejs的插件,但偶爾會得到一個錯誤,「$ .fn是未定義的」,但如果我重新加載頁面錯誤消失幾乎就像現在jquery被緩存問題被刪除。我正在加載我的庫,如下所示:Requirejs加載插件
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>
這個,因爲它是我使用的框架的一部分,不能改變。
有什麼建議嗎?
謝謝!
微米。這仍然適用於jQuery 1.7嗎? – Stann 2011-11-10 03:01:27
@Stann是的,仍然適用於jQuery 1.7。雖然jQuery 1.7註冊爲AMD模塊,但jQuery插件可能不會將其代碼封裝在define()包裝器中,要求將「jquery」作爲依賴項。所以這個問題實際上與jQuery插件有關 - 如果在jQuery加載之前加載,則會出現問題,除非插件將自身封裝在AMD define()調用中。 – jrburke 2011-11-14 19:43:16
對於那些發現這種情況的用戶,訂購插件並未提供給RequireJS 2.0,因此上面的@ jrburke鏈接將無濟於事。您仍然可以使用[1.0 API與訂單插件](http://requirejs.org/docs/1.0/docs/api.html#order),但更好的解決方案是使用[2.0與填充程序配置]( http://requirejs.org/docs/api.html#config-shim)。 – 2012-06-16 16:27:10