标签:jquery
</pre><p>1、创建基本插件的通用方法:</p><p></p><pre name="code" class="html">$.fn.greenify = function() { this.css( "color", "green" ); }; $( "a" ).greenify();2、增加链式的调用:在上面的方法中增加this的返回
$.fn.greenify = function() { this.css( "color", "green" ); return this; } $( "a" ).greenify().addClass( "greenified" );3、保护js命名空间的干净 减少和其他的插件的污染, 避免和别的插件的$的冲突,我们需要把我们的代码放在一个立即调用的函数表达式内
然后传递jQuery,参数命名为$
(function ( $ ) { $.fn.greenify = function() { this.css( "color", "green" ); return this; }; }( jQuery ));另外,立即调用函数的主要目的是允许我们使用我们的私有变量,可以把值存储在一个变量中
这样就可以在立即调用函数中定义私有变量而不污染公共环境
(function ( $ ) { var shade = "#556b2f"; $.fn.greenify = function() { this.css( "color", shade ); return this; }; }( jQuery ));尽可能的定义在一个方法内
(function( $ ) { $.fn.openPopup = function() { // Open popup code. }; $.fn.closePopup = function() { // Close popup code. }; }( jQuery ));
应该更改成:<pre name="code" class="html">(function( $ ) { $.fn.popup = function( action ) { if ( action === "open") { // Open popup code. } if ( action === "close" ) { // Close popup code. } }; }( jQuery ));
4、如果获取的是一个dom集合,想操作其中的符合条件的元素使用.each()的方法循环这个dom集合,返回的操作修改后的元素集,以供继续调用方法
$.fn.myNewPlugin = function() {
return this.each(function() { // Do something to each element here. }); };
function ( $ ) { $.fn.greenify = function( options ) { // This is the easiest way to have default options. var settings = $.extend({ // These are the defaults. color: "#556b2f", backgroundColor: "white" }, options ); // Greenify the collection based on the settings variable. return this.css({ color: settings.color, backgroundColor: settings.backgroundColor }); }; }( jQuery ));
$( "div" ).greenify({ color: "orange" });以下是以上的综合示例:
<!DOCTYPE html> <html> <head> <title>MyHtml.html</title> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> <meta http-equiv="description" content="this is my page"> <meta http-equiv="content-type" content="text/html; charset=UTF-8"> <style type="text/css"> a{display: block;width: 20;height: 20;ba} </style> <script type="text/javascript" src="js/jquery-1.11.1.js"></script> <script type="text/javascript"> (function($){ $.fn.greenify = function(options){ var settings = $.extend( {color:"green", backgroundColor:"black"},options); var that = this; return that.each(function(){ $(this).css({ color:settings.color, backgroundColor:settings.backgroundColor }); }); }; })(jQuery); $(function(){ $("a:lt(2)").greenify({color:"orange"}).html(111); }); </script> </head> <body> This is my HTML page. <br> <a href="#"> dianji </a> <a href="#"> dianji11 </a> <a href="#"> dianji221 </a> </body> </html>
标签:jquery
原文地址:http://blog.csdn.net/hao007cn123/article/details/46523861