2012-05-04 36 views
1

我試圖執行一次jQuery函數兩次。一旦DOM準備就緒,然後再次加載頁面時。大多數情況下,第二次電話不是必需的,但每隔一段時間都是如此。這是我的代碼:jQuery:執行document.ready()和window.load()函數

$(document).ready(function() { 
    function someFunction() { 
     alert('function complete'); 
    } 
}); 

$(window).load(function() { 
    someFunction(); 
});​ 

我在做什麼錯?

回答

4

你在你傳遞給$(文件)。就緒()函數定義someFunction ......功能的範圍應該是外面...... 試試這個:

function someFunction() { 
    alert('function complete'); 
} 

$(document).ready(someFunction); 
$(window).load(someFunction);​ 
2

試試這個:

function someFunction() { 
    alert('function complete'); 
} 

$(document).ready(function() { 
    someFunction(); 
}); 

$(window).load(function() { 
    someFunction(); 
}); 
+0

爲什麼要傳遞一個除了調用另一個函數什麼都不做的函數?只需傳遞你想要調用的函數! –

+0

@ParthThakkar因爲谷歌瀏覽器我的限制函數調用,這也是跨瀏覽器開發的好習慣。 Google Chrome建議使用匿名功能。 – Bloafer

+0

我很抱歉,我沒有得到你 - 鉻可能(這就是我認爲你的意思)限制函數調用?怎麼樣?相反,爲什麼? –

2

someFunction不是$(window).load內訪問,因爲它的範圍僅限於document.ready。把它從document.ready中拿出來放在全球範圍內。

function someFunction() { 
     alert('function complete'); 
} 

$(document).ready(function() { 
    someFunction(); 
}); 

$(window).load(function() { 
    someFunction(); 
});​