15.1 jQuery的插件的通常寫法app
1 (function ($) { 2 //擴展這個方法到jQuery 3 $.fn.extend({ 4 //插件名字 5 pluginname: function () { 6 return this.each(function () { 7 //在這裏編寫相應代碼進行處理 8 }); 9 } 10 }) 11 //傳遞jQuery到內層做用域去,若是window,document在裏面用得多,也可在這裏傳入 12 })(jQuery);
1 (function ($) {//這個東西叫IIFE 2 //擴展這個方法到jQuery 3 var Plugin = function () { 4 5 } 6 Plugin.prototype = {}; 7 $.fn.extend({ 8 //插件名字 9 pluginname: function (options) {//用戶的統一配置對象或方法名 10 //遍歷匹配元素的集合 11 var args = [].slice.call(arguments, 1); 12 return this.each(function () { 13 //在這裏編寫相應代碼進行處理 14 var ui = $._data(this, pluginname); 15 if (!ui) { 16 var opts = $.extend(true, {}, $.fn.pluginname.defaults, typeof options === "object" ? options : {}); 17 ui = new Plugin(opts, this); 18 $._data(this, pluginnanem, ui); 19 } 20 if (typeof options === "string" && typeof ui[options] === "function") { 21 ui[options].apply(ui, args);//執行插件的方法 22 } 23 }); 24 } 25 }); 26 $.fn.pluginname.defaults = {/*略*/ }//默認配置對象 27 //傳遞jQuery到內層做用域去,若是window,document在裏面用得多,也可在這裏傳入 28 })(jQuery);