Jquery自定义插件

$.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>  

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

时间: 2024-10-26 18:18:05

Jquery自定义插件的相关文章

jquery自定义插件——window的实现

本例子实现弹窗的效果: 1.jquery.show.js /* * 开发者:lzugis * 开发时间:2014年6月10日 * 实现功能:点击在鼠标位置显示div * 版本序号:1.0 */ (function($){ $.fn.showDIV = function(options){ var defaults = {}; var options = $.extend(defaults, options); var showdiv=$(this); var close, title, cont

代码:jquery自定义插件 demo

jquery自定义插件 demo 2016-1-13 只是一个简易的示例 <script type="text/javascript" src="http://cdn.bootcss.com/jquery/1.11.2/jquery.min.js"></script> <script type="text/javascript"> $(function(){ $.fn.portamento = function

jQuery自定义插件--banner图滚动

前言 jQuery是一个功能强大的库,提供了开发JavaScript项目所需的所有核心函数.很多时候我们使用jQuery的原因就是因为其使用插件的功能,然而,有时候我们还是需要使用自定义代码来扩展这些核心函数来提高开发效率.我们知道, jQuery库是为了加快JavaScript的开发速度而设计的,通过简化编写JavaScript的方式,减少代码量.所以,今天就带大家了解一下jQuery自定义插件以及自定义插件案例---banner图滚动. 一.自定义插件 自定义插件一般有两种类型:全局插件和局

你的专属定制——JQuery自定义插件

    前  言 絮叨絮叨 jQuery是一个快速.简洁的JavaScript框架,是继Prototype之后又一个优秀的JavaScript代码库(或JavaScript框架).jQuery设计的宗旨是"write Less,Do More",即倡导写更少的代码,做更多的事情.它封装JavaScript常用的功能代码,提供一种简便的JavaScript设计模式,优化HTML文档操作.事件处理.动画设计和Ajax交互. 那么这次,我就和大家来分享一下JQuery中的一个强大的功能--自

深入学习jQuery自定义插件

原文地址:jQuery自定义插件学习 1.定义插件的方法 对象级别的插件扩展,即为jQuery类的实例增加方法, 调用:$(选择器).函数名(参数);      $(‘#id’).myPlugin(options); 定义的方式: $.fn.extend({ "函数名":function(自定义参数){ //这里写插件代码 } }); //或者是 $.fn.函数名 = function(options){ //这里写插件代码 } 类级别的方法,就是扩展jQuery类本身的方法,为它增加

黑马day18 JQuery自定义插件

说明:使用JQuery中的JQuery.extend({//这里是json格式的数据});可以定义一个全局函数 使用JQuery中的JQuery.fn.extend({//这里是json格式的数据});可以定义一个局部函数 1.定义全局函数(来判断两个输入的数字的最大值和最小值) test.html <!DOCTYPE html> <html> <head> <title>test.html</title> <meta http-equiv

jquery自定义插件-参数化配置多级菜单导航栏插件

1 自定义菜单导航栏插件的必要性 看图说话,下面是利用自定义的菜单导航栏插件simpleMenu创建的网站导航示例: 插件默认提供的是如上图的导航栏样式,即一二级菜单为横向分布:三四级菜单为纵向分布. 使用插件时,可以修改默认参数,目前插件提供了设置菜单的分布方式:横向或纵向:菜单的位置:依赖上一级菜单栏的定位:上下左右定位. 修改调用参数,将一二级菜单改为纵向排列:并将三级菜单的显示位置改为二级菜单栏的右侧(其他的和默认保持一致),修改后运行效果如下图: 细心的观察,会发现上面两个菜单导航栏的

jquery自定义插件实现分页效果

这节介绍如何自定义jquery插件,实现分页效果,话不多说,先看看实现的效果: 分页插件 实现的代码如下: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <html> <head> <meta charset="utf-8"> <title>page t

jquery自定义插件来实现分页的效果

本节将介绍如何定义自己的jquery插入,实现分页效果,话不多说,.看看达到的效果: 分页插件 实现的代码例如以下: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <html> <head> <meta charset="utf-8"> <title>p