jQuery_插件扩展

来源:互联网 发布:ubuntu锐捷认证失败 编辑:程序博客网 时间:2024/05/22 13:48

1. 什么是插件扩展?
 jQuery作为一个插件,主要的目的是为了使前端的开发变得更加容易。在jQuery中主要的核心只有:选择器操作、dom操作、ajax(异步请求)以及事件。但是我们在开发中往往需要用到很多功能是jQuery库所没有的,比如常用的表单校验等,所以jQuery给我们提供了一些接口,方便我们去扩展它的功能。

2. jQuery插件开发主要

 第一种开发方式最简单。我们最常用的插件开发方式是第二种,相对于第三种开发方式比较简单。第三种插件开发方式主要是用来开发更高级的jQuery部件的。

<1>通过$.extend()来扩展jQuery
在jQuery命名空间添加一个方法(可以理解成类似想jQuery身上添加静态方法),所以我们通过$.extend()添加函数时,直接通过$符号调用($.myfunction())而不需要选中DOM元素($(“#example”).myfunction())。例如:

$.extend({    sayHello:function(name){        console.log("Hello,"+(name?name:"盯裆猫")+"!!!");        return this;    }})$.sayHello();      //Hello,盯裆猫!!!$.sayHello("ZZ");  //Hello,ZZ!!!

<2>通过$.fn 向jQuery添加新的方法
这个插件开发类型的基本写法:

//该类型的插件开发的基本格式$.fn.myPlugin = function(){    //具体的代码    //this.css("color","green");    //在这里this是指jQuery选中的那些元素,比如:$("a"),则this=$("a")}//调用方法$("元素").myPlugin();//调用编写的插件,类似于jQuery一样。

(PS)关于this的理解:
 在插件名字定义的这个函数的内部,this指代的是我们在调用该插件时,用jQuery选中的元素,一般都是个Object类型的集合。如果在这个函数的内部又有循环,则在外部this依旧是指代jQuery选中的元素,而在内部this是指选中的具体元素。
 比如$(“a”)返回的是页面上所有a标签的集合,并且这个集合是被jQuery包装过了的。所以我们对其进行操作的时候,可以直接调用jQuery的方法而不用再用$将其包装成jQuery对象。

<3>通过$.widget()应用jQuery UI的部件工厂方式创建
 这个方法过难,而且不常用,这边不介绍。

3. 满足链式调用的jQuery插件
 链式调用是jQuery最大的特色之一,我们在写jQuery插件的时候应该尽量靠近这种规范。实现链式调用最关键的一行代码是在最后添加return this;,插件中加了这行代码,那么在插件执行完毕之后,把当前的jQuery对象返回。这样就能继续使用jQuery方法,达到链式调用的目的。

4.一点建议
$.extend方法和$.fn.extend方法都可以用来扩展jQuery功能,通过阅读jQuery源码我们可以发现这两个方法的本质区别,那就是$.extend方法是在jQuery全局对象上扩展方法,$.fn.extend方法是在$选择符选择的jQuery对象上扩展方法。所以扩展jQuery的公共方法一般用$.extend方法,定义插件一般用$.fn.extend方法。

原创粉丝点击