jquery頁面加載

一,jQuery頁面加載後執行的事件(3種方式)

說明:當DOM載入就緒能夠查詢及操縱時綁定一個要執行的函數。能夠在DOM載入就緒可以讀取並操縱時當即調用你所綁定的函數,而99.99%的JavaScript函數都須要在那一刻執行。函數

1 $(function () { });

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

3 window.onload = function () { }

注意點:spa

1,有一個參數--對jQuery函數的引用--會傳遞到這個ready事件處理函數中。能夠給這個參數任意起一個名字,並所以能夠再也不擔憂命名衝突而放心地使用$別名。插件

2,請確保在 <body> 元素的onload事件中沒有註冊函數,不然不會觸發$(document).ready()事件。code

3,能夠在同一個頁面中無限次地使用$(document).ready()事件。其中註冊的函數會按照(代碼中的)前後順序依次執行。對象

二,匿名方法預約義插件

(function($){

}) (jQuery)

至關於定義了一個參數爲$的匿名函數,而且將jQuery做爲參數來調用這個匿名函數,之因此只在形參使用$,是爲了避免與其餘庫衝突,因此實參用jQuery。事件

其實就等於ip

var fn = function($){

};
fn(jQuery);

其實能夠這麼理解,不過要注意的是fn是不存在的,那個函數直接定義,而後就運行了。就「壓縮」成下面的樣子了
(function($){...})(jQuery) 
簡單理解:(function($){...})(jQuery)用來定義一些須要預先定義好的函數
$(function(){ })則是用來在DOM加載完成以後運行\執行那些預行定義好的函數。
開發

三,區別

1,$(function(){})在DOM加載完畢後執行了ready()方法,(function($){}) (jQuery)是執行()(para)匿名方法,只不過是傳遞了jQuery對象。io

2,$(function(){})用於存放操做DOM對象的代碼,執行其中代碼時DOM對象已存在。不可用於存放開發插件的代碼,由於jQuery對象沒有獲得傳遞,外部經過jQuery.method也調用不了其中的方法(函數)。 
(function(){})(jQuery)用於存放開發插件的代碼,執行其中代碼時DOM不必定存在,因此直接自動執行DOM操做的代碼要當心使用。function

相關文章
相關標籤/搜索