2011-09-18 63 views
1

嘿不知道如何解釋或問這個問題,所以我會用代碼演示了,說我有這樣的:使用功能

$(function() { 

    $(window).resize(foo()); 

    function foo() { 
     alert('bar'); 
    } 

}); 

我如何與其做這樣的工作:

$(window).resize(function() { 
    foo(); 
}); 
+0

試圖在的jsfiddle:http://jsfiddle.net/medopal/tfBsu/和第一個廣告的實際工作! – medopal

+0

你能告訴我你是怎麼稱呼它的嗎?然後我可以告訴你如何寫它 – Paul

+0

這個問題似乎是http://stackoverflow.com/questions/6483383/call-a-function的轉發。正如@zzzz指出的那樣,您需要引用函數名稱而不包括括號。 – Xenethyl

回答

4
$(function() { 

    $(window).resize(foo); 


}); 


function foo() { 
    alert('bar'); 
} 

你基本上需要的函數指針傳遞給jQuery的..當你做function(){foo();}要創建一個匿名函數。

Live Demo

+0

我的不好,我確實在發佈問題之前測試了這個問題,只是爲了發現它在其他地方的js錯誤中沒有工作。 – daryl

+0

好的和簡單的解釋,只有一件事 - '$(window).resize(foo);'可以位於'$(document).ready'事件(或其快捷方式)之外,因爲'window'始終存在,don不需要等到它存在。 –

+0

以及我認爲abt that ..但該函數可能正在處理東西的權利,如果用戶調整窗口時,DOM正在加載,那麼你可能會看到sm問題.. – Baz1nga