最近的所得
最近公司來了一位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)看到
記錄一下
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)看到
留言
張貼留言