最近的所得

最近公司來了一位part time 工程師 在他的身上我學到不少"快速"的知識
記錄一下

1. 很多jQuery plugin會這樣寫...
(function($){
// content here
})(jQuery);

目地有二:
A. 這樣用"()"把function包起來是一種特殊的宣告方式  這樣在掃過script內容時  函式便會執行
傳統的 function(){...}只是靜態的宣告而已  掃過並不會執行

B. 在該function的scope內 "$" 就會是代表jQuery 這樣就不會和外界(maybe是全域的)的"$"衝突到

C. $.fn.function_name = function(){...} 意思是指把jQuery的內建function 清單中再加上function_name 這個函式


D. 以下的用法常見於接收傳遞進來的參數
$.fn.lazyload = function(options){
var settings = {
threshold:0,
failurelimit: 0,
event: "scroll",
effect: "show",
container: window
};


if(options){
  $.extend(settings, options);
}
....

是指把預設值(settings) 拿去和傳入參數(options) 比對, 如果這個參數項目有傳入, 那就用傳入的, 否則用預設值, $.extend 這個函式方變我們很快速的做到這件事


上述的應用範例都可以在這個plugin(jQuery  lazyload)看到

留言

熱門文章