Jquery是優(yōu)秀的javascrīpt框架。我們現(xiàn)在來(lái)討論下在 Jquery 中兩個(gè)頁(yè)面載入后執(zhí)行的函數(shù)。
$(document).ready(function(){ // 在這里寫你的代碼...});在DOM加載完成時(shí)運(yùn)行的代碼
可以簡(jiǎn)寫成
jQuery(function(){ });
(function($) {})(jQuery)什么意思?
(function(){ })(jQuery);其實(shí)際上是執(zhí)行()(para)匿名方法,只不過(guò)是傳遞了jQuery對(duì)象。
相當(dāng)于
function aa($){} aa(jQuery)
是初始化jquery對(duì)象的慣用方法.
通俗點(diǎn)說(shuō)就是在頁(yè)面DOM加載完成后(不包括圖片下載完成)執(zhí)行你需要的代碼,由于不包括圖片下載,所以比window.onload效率高. 不過(guò)這個(gè)東西,有的時(shí)候會(huì)使頁(yè)面跳動(dòng),很多JQUERY插件都是在加載完成后,才改變樣式的,頁(yè)面會(huì)有跳動(dòng)或閃動(dòng)的感覺(jué).比如ui.tab這個(gè)插件,頁(yè)面元素一多,全部顯示出來(lái)了,它才形成TAB,很暈的說(shuō)
(function(){})();立即執(zhí)行函數(shù);相當(dāng)于先申明一個(gè)函數(shù),聲明完后直接調(diào)用;
如果參數(shù)如:
(function(str){alert(str)})("output"));相當(dāng)于:function OutPutFun(str){alert(str);};OutPutFun("output");
總結(jié):
1.
jQuery(function(){ });
用于存放操作DOM對(duì)象的代碼,執(zhí)行其中代碼時(shí)DOM對(duì)象已存在。不可用于存放開(kāi)發(fā)插件的代碼,因?yàn)閖Query對(duì)象沒(méi)有得到傳遞,外部通過(guò)jQuery.method也調(diào)用不了其中的方法(函數(shù))。
2.
(function(){ })(jQuery);
用于存放開(kāi)發(fā)插件的代碼,執(zhí)行其中代碼時(shí)DOM不一定存在,所以直接自動(dòng)執(zhí)行DOM操作的代碼請(qǐng)小心使用。
開(kāi)發(fā)插件的格式如下:
(function ($) { $.fn.test111 = function () { alert('test') } })(jQuery);調(diào)用插件
$("#elementid").test111();--------------------------------------------------------------------------------
(function($){...})(jQuery)實(shí)際上是匿名函數(shù),不懂得朋友可以繼續(xù)往下看。 這里實(shí)際上是匿名函數(shù) function(arg){...} 這就定義了一個(gè)匿名函數(shù),參數(shù)為arg 而調(diào)用函數(shù)時(shí),是在函數(shù)后面寫上括號(hào)和實(shí)參的,由于操作符的優(yōu)先級(jí),函數(shù)本身也需要用括號(hào),即: (function(arg){...})(param) 這就相當(dāng)于定義了一個(gè)參數(shù)為arg的匿名函數(shù),并且將param作為參數(shù)來(lái)調(diào)用這個(gè)匿名函數(shù) 而(function($){...})(jQuery)則是一樣的,之所以只在形參使用$,是為了不與其他庫(kù)沖突,所以實(shí)參用jQuery. 等同于 var fn = function($){....}; fn(jQuery); (funtion(){})();立即執(zhí)行函數(shù);相當(dāng)于先申明一個(gè)函數(shù),聲明完后直接調(diào)用; 如果參數(shù)如: (funtion(str){alert(str)})("output"));相當(dāng)于:funtion OutPutFun(str){alert(str);};OutPutFun("output");
新聞熱點(diǎn)
疑難解答
圖片精選