2012-03-08 53 views
0

我正在棟自動完成,我的網站,當我碰到這種風格的建築代碼:包裝的功能作爲一個jQuery參數

$(function() { 

    function log(message) { 
     $("<div/>").text(message).prependTo("#log"); 
     $("#log").scrollTop(0); 
    } 

    $(element).autocomplete(.... 

    //more code 
}); 

我知道倒閉,「IIFE」秒,但這個是一個新的爲了我。

  • 上面的「jQuery-wrapped」代碼是什麼?
  • 有什麼特別的原因我應該這樣做? (範圍?)
  • 優化明智,我應該甚至這樣做?

回答

2
  1. $(function() { });相當於$(document).ready(function() {});和前一次執行DOM已準備就緒。

  2. 在裏面定義一個函數是告訴你,函數只有在dom準備好執行後纔可用。

  3. $(element).autocomplete(....只是在DOM準備好執行之後,纔將選擇器的插件實現。

現在希望其明確的:)


$(function() {$(document).ready(function() {不需要整個頁面加載,運行如$(window).load(fn)一樣。

+0

謝謝!從來不知道這只是'.ready()'的簡寫 – Joseph 2012-03-08 09:08:12

1

$(fn)$(document).ready(fn)是jQuery的onload/onDOMContentLoaded處理函數。傳遞給它的函數在頁面上的DOM準備就緒後執行。

1

所有在$(function() { }將在DOM加載後執行。我更喜歡使用 $(document).ready(function() { },因爲它更清晰。