我在加入到WordPress站點的一些自定義文件使用jQuery,和我用這個,讓我用「$」的快捷方式:
jQuery(function ($) {
$(selector).bla();
// etc
}
但是,如果我想將我的代碼拆分爲多個文件,則此構造需要存在於每個文件中,然後才能從另一個文件中調用函數。這個怎麼做?我能以某種方式將某些功能聲明爲全局嗎?
我在加入到WordPress站點的一些自定義文件使用jQuery,和我用這個,讓我用「$」的快捷方式:
jQuery(function ($) {
$(selector).bla();
// etc
}
但是,如果我想將我的代碼拆分爲多個文件,則此構造需要存在於每個文件中,然後才能從另一個文件中調用函數。這個怎麼做?我能以某種方式將某些功能聲明爲全局嗎?
jQueryUI的實際寫入類似的方式:
(function($, undefined) {
...
}(jQuery));
這種方式,$
保證是用於jQuery
功能和關鍵字undefined
的同義詞將被定義爲與一個未定義的值參數。 undefined
部分實際上用一些瀏覽器修正了一些挑剔的問題,因爲它們並不都以相同的方式處理未定義的問題。
您可以隨時聲明功能外的jQuery(function() {...});
結構,在全球範圍內。
在DOM準備就緒之前,您只能訪問DOM,這意味着如果他們訪問DOM,那麼無法執行以外的那些功能jQuery(function() {...});
。
您也可以隨時到window
屬性賦值創建一個全局變量:
window.theanswer = 42;
添加多個值,以全局命名空間是不是一個好的做法,以及其他技術存在創建模塊化JavaScript來解決這個問題。 See tvanfosson's answer。
您可能想要使用requirejs來定義模塊,然後將模塊作爲依賴關係傳遞。你也可以用它來定義jQuery作爲依賴關係,這樣它就可以用你想要的任何變量名在本地作用域。
require(['jquery','somemodule','someothermodule'], function($,module1,module2) {
$(function() {
var mod1 = new module1();
var mod2 = new module2();
...
});
});
您可以使用這樣的事情:
var myFunc = function($) {
function toExport() {
alert($);
}
return toExport;
}(jQuery);
只返回你需要的資源(也可以是單功能或對象,或任何你真正想要的。)
請問這個答案這個問題? –