码迷,mamicode.com
首页 > Web开发 > 详细

Jquery自定义插件

时间:2016-08-11 22:29:16      阅读:348      评论:0      收藏:0      [点我收藏+]

标签:

$.fn.extend是一个实例的扩展,但是$.extend是类的扩展 
<script type="text/javascript"> (function($){ $.fn.extend({ myPlugName:function(){ $(this).click(function(){ alert($(this).val()); }); } }); })(jQuery); </script>

<body>
    <input type="button" value="点击我" id="btn" />
</body> <script type="text/javascript"> $("#btn").myPlugName(); </script>



    <script type="text/javascript">
        (function($){
            $.fn.hilight=function(options){
                var defaults={
                    foreground:red,
                    background:yellow    
                };
                var opts = $.extend(defaults,options);
                $(this).css("background-color",opts.background);
                $(this).css("color",opts.foreground);
            };
        })(jQuery);
    </script>

<body>
    <div id="myDiv">This is a Params JQuery!</div>
</body>
<script type="text/javascript">
    $("#myDiv").hilight({foreground:blue});
</script>

var opts = $.extend(defaults,options);这句话的意思是吧defaults的属性和options的属性合并并保存到opts中

 

由于美元符号(“$”)不仅仅只有jQuery库会使用到,其他Javascript库也可能使用到,假如其他库中“$”也有特别的含义,那么就会引起不必要冲突了。

(function($) {
    $.fn.myPluginName = function() {
        // your plugin logic
    };
})(jQuery);


1.添加jQuery对象级的插件,是给jQuery类添加方法
;(function($){  
    $.fn.extend({  
        "函数名":function(自定义参数){  
            //这里写插件代码  
        }  
    });  
})(jQuery);  
或者  
;(function($){  
    $.fn.函数名=function(自定义参数){  
        //这里写插件代码  
    }  
})(jQuery);  
调用方法:$("#id").函数名(参数);



2.jQuery类级别的插件,相当于添加静态方法
;(function($){  
    $.extend({  
        "函数名":function(自定义参数){  
            //这里写插件代码  
        }  
    });  
})(jQuery);  
或者  
;(function($){  
    $.函数名=function(自定义参数){  
        //这里写插件代码  
    }  
})(jQuery);  
调用方法:$.函数名(参数);

jquery插件的种类:

  1.对象级别的插件开发,即给jQuery对象添加方法,封装对象方法的插件,如:parent()、appendTo()

  2.一种是类级别的插件开发,即给jQuery添加新的全局函数,相当于给jQuery类本身添加方法,jQuery的全局函数就是属于jQuery命        名空间的函数,封装全局函数的插件

  3.选择器插件

jQuery插件机制

  jQuery为开发插件提拱了两个方法,分别是:

     jQuery.fn.extend(object); 给jQuery对象添加方法。

     jQuery.extend(object); 为扩展jQuery类本身.为类添加新的方法,可以理解为添加静态方法。

     这两个方法都接受一个参数,类型为Object,Object对应的"名/值对"分别代表"函数或方法体/函数主体"。

 

1.对象级别的插件开发,

  这里的方法提供一个参数value,如果调用方法时传入value,那么就用这个值来设置字体颜色,否则就是获取匹配无此的字体颜色的值

<span style="font-size:12px;">;(function($){  
    $.fn.extend({  
        "color":function(value){  
            return this.css("color",value);  
        }  
    });  
})(jQuery);</span>  

 调用时可直接写成:$("div").color("red");

另外如果要定义一组插件,可以使用如下所示写法:

<span style="font-size:12px;">;(function($){  
    $.fn.extend({  
        "color":function(value){  
            //这里写插件代码  
        },  
        "border":function(value){  
            //这里写插件代码  
        },  
        "background":function(value){  
            //这里写插件代码  
        }  
    });  
})(jQuery);</span> 

2.封装全局函数的插件

例如新增两个函数,用于去除左侧和右侧的空格。

<span style="font-size:12px;">;(function($){  
    $.extend({  
        ltrim:function(text){  
            return (text||"").replace(/^\s+g,"");  
        },  
        rtrim:function(text){  
            return (text||"").replace(/\s+$/g,"");  
        }  
    });  
})(jQuery);  
或者  
;(function($){  
    $.ltrim=function(text){  
        return (text||"").replace(/^\s+g,"");  
    },  
    $.rtrim=function(text){  
        return (text||"").replace(/\s+$/g,"");  
    }  
      
})(jQuery);</span> 

 调用函数:

<span style="font-size:12px;">$("trimTest").val(  
    jQuery.trim(" test ")+"\n"+  
    jQuery.ltrim(" test ")+"\n"+  
    jQuery.rtrim(" test ")  
);</span>  

文本框中第一行字符串左右两侧的空格都被删除。
 第二行的字符串只有左侧的空格被删除。
 第三行的字符串只有右侧的空格被删除。

Jquery自定义插件

标签:

原文地址:http://www.cnblogs.com/shy1766IT/p/5762707.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!