我有一些實驗輸入檢查的Javascript:從模塊內執行DOM準備好的JQuery函數?
$(function(){
var check_stuff = function(elem){
//...code to check stuff
};
// grab every input element with a checkable class
$('input.checkable').each(function(i) {
$(this).click(function(){
if check_stuff(elem) {
$(this).submit(); // submit if passes checks
}
};
});
});
其中一期工程。但是,我擔心這會污染全球空間。因此,如果'jquery_stuff'函數是在jQuery中的某個地方定義的,或者由另一個共享$的模塊定義的,我實際上已經重寫了它。那是對的嗎?
如果我刪除第一行$:
(function(){
那麼相信我創建一個標準的JavaScript匿名函數,從而有效隔離check_stuff。但是:
$(this).click(function(){
...不再在DOM準備好的時候執行(因爲它一經執行就執行)。我試過用jQuery(document).ready來包裝它以達到無效的效果。
什麼是創建模塊的正確方法,該模塊執行準備好的代碼塊?
感謝大家誰張貼,你通常都在相同(正確)的波長上。 –