JQuery 插件开发:
- 类级别开发,开发新的全局函数
- 对象级别开发,给Jquery对象开发新方法
一、类级别开发 -定义全局方法
jQuery.foo = function() { alert('This is a test.'); };
采用命名空间,可以避免命名空间内函数的冲突。
jQuery.apollo={ fun1:function(){ console.log('fun1'); }, fun2:function(){ console.log('fun2'); } }
二、对象级别开发 -定义jQuery对象方法
(function($) { $.fn.pluginName = function() { }; })(jQuery); //插件通过这样被调用: $('#myDiv').pluginName();
接受options参数以控制插件的行为
(function($){ $.fn.fun2=function(option){ var defaultOption={ param1:'param1', param2:'param2' } $.extend(defaultOption,option); console.log(defaultOption); } })(jQuery); $(function(){ //通过这样调用 $("body").fun2({ param1:'new Param1' }); });
保持私有函数的私有性
(function($) { // plugin definition $.fn.hilight = function(options) { debug(this); // ... }; // private function for debugging //“debug”方法不能从外部闭包进入,因此对于我们的实现是私有的。 function debug($obj) { if (window.console && window.console.log) window.console.log('hilight selection count: ' + $obj.size()); }; // ... })(jQuery);