为jQuery写插件
很多场合,我们都会调用jQuery的插件去完成某个功能,比如slider。
如下图,做一个div,通过“$( "#slider" ).slider();”的方式直接将div变成slider,比起slider($('#slider'))更贴近jQuery的链式调用写法,可读性和通用性更好些。
那么,我们也来为jQuery写插件。便于项目中的组件化。
方法是非常简单的,那就写一个测试的demo来作为基础的验证吧。
定义html,假设我们要把test div修改成宽高都是200px,背景色为红色的这么一个插件功能。
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> </head> <body> <div id='test'></div>
<script type='text/javascript' src="jquery-1.11.3.min.js"></script> <script type='text/javascript'> </script> </body> </html>
写一个名为test的插件函数,完成插件的功能。这里可以直接使用this,表示选择器选择的那个元素封装对象。
function test(){ this.css('background-color','red'); this.css('width', '200'); this.css('height', '200'); }
完成一个自执行函数,将jQuery传进去,关键就是把插件函数挂到jQuery.fn中去。
(function(jquery){ jquery.fn.test = test; })(jQuery);
调用的时候,就用jQuery选择器选择test div后直接链式调用test插件函数即可。
$('#test').test();
如此,最简单的插件就完成了。
代码:
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> </head> <body> <div id='test'></div> <script type='text/javascript' src="jquery-1.11.3.min.js"></script> <script type='text/javascript'> function test(){ this.css('background-color','red'); this.css('width', '200'); this.css('height', '200'); } (function(jquery){ jquery.fn.test = test; })(jQuery); $('#test').test(); </script> </body> </html>