pplxh 2016-10-26
jQuery为开发插件提拱了两个方法,分别是:
jQuery.fn.extend();
jQuery.extend();
PS:jQuery.fn 等价 jQuery.prototype。
<!DOCTYPE html> <html lang="zh-cn"> <head> <meta charset="UTF-8"> </head> <body> <script type="text/javascript" src="jquery-1.10.1.min.js"></script> <script> $.extend({ //多个方法,使用 , 隔开 min: function(a, b) { return a < b ? a : b; }, max: function(a, b) { return a > b ? a : b; } }); var minVal = $.min(2,3); var maxVal = $.max(4,5); console.info(minVal);//2 console.info(maxVal);//5 </script> </body> </html>
效果图:
$("#btn")为一个jQuery实例,当它调用成员方法 showBtnVal 后,便实现了扩展,每次被点击时它都向控制台输出当前的内容。
<!DOCTYPE html> <html lang="zh-cn"> <head> <meta charset="UTF-8"> </head> <body> <button value="阅谁问君诵,水落清香浮。" id="btn">按钮</button> <script type="text/javascript" src="jquery-1.10.1.min.js"></script> <script> $.fn.extend({ showBtnVal:function() { //this 指当前的参数 $(this).click(function(){ console.info($(this).val()); }); } }); $("#btn").showBtnVal(); </script> </body> </html>
效果图:
这是普通方法和插件方法的区别
<!DOCTYPE html> <html lang="zh-cn"> <head> <meta charset="UTF-8"> </head> <body> <div class="fix"></div> <script type="text/javascript" src="jquery-1.10.1.min.js"></script> <script> (function($){ $.fn.tooltip1 = function(){ console.info("111"); }; $.prototype.tooltip2 = function(){ console.info("222"); }; $.fn.extend({ tooltip3:function(){ console.info("333"); } }); $.prototype.extend({ tooltip4:function(){ console.info("444"); } }); $.extend({ tooltip5: function(){ console.info("555"); } }); })(jQuery); $(function(){ //这是插件的方法 //使用参数进行调用 $(".fix").tooltip1(); $(".fix").tooltip2(); $(".fix").tooltip3(); $(".fix").tooltip4(); //直接$调用 $.tooltip5(); //这是普通的方法 fun1(); fun2(); }); var fun1 = function(){ console.info("fun1"); }; function fun2(){ console.info("fun2"); }; </script> </body> </html>
效果图: