jQuery插件类型

jQuery插件主要有3种类型:

1、封装对象方法的插件

这种插件类型是最常见的一种插件,它将对象方法封装起来,对通过选择器获取的jQuery对象进行操作。

2、封装全局函数的插件

这种插件将独立的函数加到jQuery命名空间之下。如解决冲突用的jQuery.noConflict()方法,常用的jQuery.ajax()和jQuery.trim()方法等。

3、选择器插件

虽然jQuery的选择器十分强大,但还是会需要扩充一些自己喜欢的选择器,如用color(red)来选择所有的红色字的元素

jQuery插件机制

jQuery提供了两个用于扩展jQuery功能的方法,即jQuery.fn.extend()和jQuery.extend()。前者用于扩展上文提到的第1种,后者用于扩展后两种。这两种方法都接收一个类型为Object的参数。Object对象的“键/值”对分别代表”函数或方法名/函数主体“。

另外,jQuery.extend()方法除了可以用于扩展jQuery对象以外,还可以用一个或多个其他对象来扩展一个对象,然后返回被扩展的对象。

语法:jQuery.extend(target,obj1,...[objN])

例:合并settings对象和options对象,修改并返回settings对象。

var settings={validate:false,limit:5,name:"foo"};
var options={validate:true,name:"bar"};
var newOptions=jQuery.extend(settings,options);

结果为:

newOptions={validate:true,limit:5,name:"bar"}

jQuery.extend()方法经常被用于经常用于设置插件方法的一系列默认参数,如下面代码所示:

function student(options){
options=jQuery.extend({
name:"xiaoming",
age:18,
sex:"boy" /*默认参数*/
},options); /*options为传递的参数*/
};

如果用户调用student方法的时候,在传递的参数options对象设置了相应的值,那么就使用设置的值,否则使用默认值:

student(name:"xiaohua",age:17,sex:"girl");
student(name:"xiaojun",age:16);
student();

编写jQuery插件(二)——jQuery插件类型和机制的更多相关文章

  1. layui常用插件(二) 时间插件

    日期和时间 html <div class="layui-inline"> <!-- 注意:这一层元素并不是必须的 --> <input type=& ...

  2. jQuery插件的2种类型

    1.封装方法插件  封装方法插件在本质上来说,是一个对象级别的插件,这类插件首先通过jQuery选择器获取对象,并为对象添加方法,然后,将方法进行打包,封闭成一个插件,这种类型的插件编写简单,极易调用 ...

  3. (翻译)编写属于你的jQuery插件

    Writing Your Own jQuery Plugins 原文地址:http://blog.teamtreehouse.com/writing-your-own-jquery-plugins j ...

  4. jQuery第七章插件的编写和使用

    1.本章目标 编写jquery插件 2.插件 也称为扩展,是一种按照一定的规范的应用程序接口编写出来的程序 插件的目标是给已有的一系列函数做一个封装,以便在其他的地方复用,方便维护和开发效率 3.jq ...

  5. 编写jQuery插件(一)——插件约定及插件中的闭包

    编写插件的目的是给已经有的一系列方法或函数做一个封装,以便在其他地方重复使用,提高开发效率和方便后期维护. 在编写jQuery插件的时候,我们一般会遵循一些约定: jQuery插件推荐命名为:jque ...

  6. jQuery用面向对象的思想来编写验证表单的插件

    本人的重点是怎么构建一个简单有效可扩展的jQuery表单验证插件,这篇文章没有教你怎么用 validate plugin.我们的重点在学习一些jQuery,Javascript面向对象编程的知识. 下 ...

  7. 生成二维码的 jQuery 插件:jquery.qrcode.js的中文乱码问题

    在使用jquery.qrcode.js这个插件生成二维码的时候发现并不能识别中文. 原因在于:jquery-qrcode是采用charCodeAt()方式进行编码转 换的. 而这个方法默认会获取它的U ...

  8. jQuery打造智能提示插件二(可编辑下拉框)

    在上一篇 jQuery打造智能提示插件 上改进,增加下拉按钮,修复点击下拉区域外不隐藏BUG 效果 下拉按钮素材: js封装,注意红色部分为BUG修复,然后传入boxwidth不带px: /* /// ...

  9. jQuery extend() & jQuery.fn.extend(),插件编写

    资料来源:网上资料整理并自行改编测试.复制以下代码并依赖jquery.js,jquery.validate.js即可执行.有误之处,请@我啊,敬请赐教. <!DOCTYPE html PUBLI ...

随机推荐

  1. JUC线程池之 线程池架构

    线程池的架构图如下: Executor 它是"执行者"接口,它是来执行任务的.准确的说,Executor提供了execute()接口来执行已提交的 Runnable 任务的对象.E ...

  2. java数组变量

    数组变量是一种引用类型的变量,能够指向数组对象.数组对象存储在堆内存中,当数组变量为局部变量时存储在栈内存中. int[] p = new int[]{5, 6, 7, 8, 9}; p是数组变量,指 ...

  3. Hadoop集群环境搭建步骤说明

    Hadoop集群环境搭建是很多学习hadoop学习者或者是使用者都必然要面对的一个问题,网上关于hadoop集群环境搭建的博文教程也蛮多的.对于玩hadoop的高手来说肯定没有什么问题,甚至可以说事“ ...

  4. 工欲善其事必先利其器系列之:更换Visual Studio代码风格.

    前言:如果你厌倦了默认的VS的背景颜色,可以在studiostyl下载.vssettinggs文件,将其导入VS中,黑色的风格还是蛮不错的,如果用的12的话就没这个必要了我觉得. 从网站下载后会得到扩 ...

  5. android 获取当前 activity

    ActivityManager am = (ActivityManager) this .getSystemService(ACTIVITY_SERVICE); List<RunningTask ...

  6. 【Active入门】ActiveMQ学习-1

    基本概念: 接收者: package com.ll.activemq; import java.util.Collection; import java.util.Iterator; import j ...

  7. 如何使用HttpClient认证机制

    1.服务器认证(Server Authentication)HttpClient处理服务器认证几乎是透明的,仅需要开发人员提供登录信息(login credentials).登录信息保存在HttpSt ...

  8. 检测2个公网IP的GRE隧道是否通的方法,使用PPTP拨号检测。

    检测2个公网IP的GRE隧道是否通的方法,使用PPTP拨号检测. 因为PPTP是建立在GRE隧道基础上的. PPTP 防火墙开放 TCP 1723防火墙开放 IP protocol 47,即GRENA ...

  9. 阿里云EC2+QEMU虚拟机+ROS完全教程!

    ---恢复内容开始--- 1.安装centos6.5 x64 同时记录,当前centos分配得到的IP,子网掩码,网关,以及MAC!!! 查看IP.mac命令ip add 查看网关命令cat /etc ...

  10. centos7 设置系统时间与网络同步

    1.安装ntpdate工具 yum -y install ntp ntpdate 2.设置系统时间与网络时间同步 ntpdate cn.pool.ntp.org 3.将系统时间写入硬件时间 hwclo ...