20151213Jquery学习笔记--插件

插件(Plugin)也成为 jQuery 扩展(Extension),是一种遵循一定规范的应用程序接口编 写出来的程序。目前 jQuery 插件已超过几千种,由来自世界各地的开发者共同编写、验证 和完善。而对于 jQuery 开发者而言,直接使用这些插件将快速稳定架构系统,节约项目成 本

一.插件概述

插件是以 jQuery 的核心代码为基础,编写出复合一定规范的应用程序。也就是说,插 件也是 jQuery 代码,通过 js 文件引入的方式植入即可。

插件的种类很多,主要大致可以分为:UI 类、表单及验证类、输入类、特效类、Ajax 类、滑动类、图形图像类、导航类、综合工具类、动画类等等。

引入插件是需要一定步骤的,基本如下:

1.必须先引入 jquery.js 文件,而且在所有插件之前引入;

2.引入插件;

3.引入插件的周边,比如皮肤、中文包等。

二.验证插件

Validate.js 是 jQuery 比较优秀的表单验证插件之一。这个插件有两个 js 文件,一个是主 文件,一个是中文包文件。使用的时候,可以使用 min 版本;在这里,为了教学,我们未 压缩版本

验证插件包含的两个文件分别为:jquery.validate.js 和 jquery.validate.messages_zh.js。

//HTML 内容

<scripttype="text/javascript"src="jquery.validate.js"></script>
<scripttype="text/javascript"src="jquery.validate.messages_zh.js"></script>
 <form>
<p>用 户 名:<inputtype="text"class="required"name="username"minlength="2"/>
 *</p>
<p>电子邮件:<inputtype="text"class="requiredemail"name="email"/>
*</p>
<p>网 址:<inputtype="text"class="url"name="url"/></p>
 <p><inputtype="submit"value="提交"/></p>
</form>

  //jQuery 代码

$(function(){
 $(‘form‘).validate();
});

  只要通过 form 元素的 jQuery 对象调用 validate()方法,就可以实现“必填”、 “不能小于 两位”、 “电子邮件不正确”、“网址不正确”等验证效果。除了 js 端的 validate()方法调用, 表单处也需要相应设置才能最终得到验证效果。

1.必填项:在表单设置 class="required";

2.不得小于两位:在表单设置 minlength="2";

3.电子邮件:在表单中设置 class="email";

4.网址:在表单中设置 class="url"。

注意:本章就简单的了解插件的使用,并不针对某个功能的插件进行详细讲解。比如验 证插件 validate.js,它类似与 jQuery 一样,同样具有各种操作方法和功能,需要进行类似手 册一样的查询和讲解。所以,我们会在项目中再去详细讲解使用到的插件。

三.自动完成插件

所谓自动完成,就是当用户输入部分字符的时候,智能的搜索出包含字符的全部内容。 比如:输入 a,把匹配的内容列表展示出来。

//HTML 内容

<scripttype="text/javascript"src="jquery.autocomplete.js"></script>
<scripttype="text/javascript"src="jquery-migrate-1.2.1.js"></script>
 <linkrel="stylesheet"href="jquery.autocomplete.css"type="text/css"/>

  //jQuery 代码

varuser=[‘about‘,‘family‘, ‘but‘, ‘black‘];
$(‘forminput[name=username]‘).autocomplete(user,{
 minChars:0 //双击显示全部数据
});

  

注意:这个自动完成插件使用的 jQuery 版本较老,用了一些已被新版本的 jQuery 废弃 删除的方法,这样必须要向下兼容才能有效。所以,去查找插件的时候,要注意一下他坚持 的版本。

四.自定义插件

前面我们使用了别人提供好的插件,使用起来非常的方便。如果市面上找不到自己满意 的插件,并且想自己封装一个插件提供给别人使用。那么就需要自己编写一个 jQuery 插件 了。

按照功能分类,插件的形式可以分为一下三类:

1.封装对象方法的插件;(也就是基于某个 DOM 元素的 jQuery 对象,局部性)

2.封装全局函数的插件;(全局性的封装)

3.选择器插件。(类似与.find())

经过日积月累的插件开发,开发者逐步约定了一些基本要点,以解决各种因为插件导致 的冲突、错误等问题,包括如下:

1.插件名推荐使用 jquery.[插件名].js,以免和其他 js 文件或者其他库相冲突;

2.局部对象附加 jquery.fn 对象上,全局函数附加在 jquery 上;

3.插件内部,this 指向是当前的局部对象;

4.可以通过 this.each 来遍历所有元素;

5.所有的方法或插件,必须用分号结尾,避免出现问题;

6.插件应该返回的是 jQuery 对象,以保证可链式连缀;

7.避免插件内部使用$,如果要使用,请传递 jQuery 进去。

按照以上的要点,我们开发一个局部或全局的导航菜单的插件。只要导航的<li>标签内 部嵌入要下拉的<ul>,并且 class 为 nav,即可完成下拉菜单。

//HTML 部分

<ulclass="list">
  <li>导航列表
    <ul class="nav">
      <li>导航列表 1</li>
      <li>导航列表 1</li>
      <li>导航列表 1</li>
      <li>导航列表 1</li>
      <li>导航列表 1</li>
      <li>导航列表 1</li>
   </ul>
  </li>
  <li>导航列表
    <ul class="nav">
     <li>导航列表 2</li>
     <li>导航列表 2</li>
     <li>导航列表 2</li>
     <li>导航列表 2</li>
     <li>导航列表 2</li>
     <li>导航列表 2</li>
    </ul>
   </li>
 </ul>

  

//jquery.nav.js 部分 ;
(function($){
 $.fn.extend({
 ‘nav‘:function(color){
 $(this).find(‘.nav‘).css({
    listStyle:‘none‘,
    margin:0,
    padding:0,
    display:‘none‘,
    color:color
});

$(this).find(‘.nav‘).parent().hover(function(){
$(this).find(‘.nav‘).slideDown(‘normal‘);
},function(){
$(this).find(‘.nav‘).stop().slideUp(‘normal‘);
 });
returnthis;
}
});
})(jQuery);

  此教程来源于北风网

时间: 2024-11-11 01:50:55

20151213Jquery学习笔记--插件的相关文章

jquery学习笔记-----插件的编写

一.对jQuery对象的扩展 ;(function($){ $.fn.extend(  { fun1:abc,fun2:1bc … } ) })(jQuery) 二.对jQuery本身的扩展,相当于静态方法 ;(function($){ $.extend(  { fun1:abc,fun2:1bc … } ) })(jQuery) 注意: 1.jquery插件的推荐命名方式为 jquery.插件名.js 2.在插件内部,this指向的是当前的jquery对象 3.有必要时要返回juqery对象,

AspectJ学习笔记2-Eclipse中AspectJ插件AJDT的正确安装方法

接着之前一篇日志.这个事情也挺无语的,简单记录一下. 在这里:http://www.eclipse.org/ajdt/ 可以下载最新的Eclipse Plugin,下载解压之后,一般来说,直接把解压后文件夹下的features和plugins放到Eclipse的文件夹下就行了.不过我这样做以后,启动Eclipse,发现没什么作用.才参考网上有人介绍的第二种方法,也就是Help--Install New Software--Add--Local这种方式选择刚才的解压文件夹,但是这样操作以后会报像下

《iOS应用逆向工程》学习笔记(五)初尝越狱插件OpenSSH

首先在越狱机子上装上OpenSSH插件,然后查看设备的IP地址,这里假设为192.168.xxx.xxx. 然后用Mac上的Terminal通过Open SSH连接到设备上(初次登录密码是alpine,必须立即修改,否则任何人都可以连接到你的机子上搞破坏). 连接命令为:ssh [email protected]设备IP地址 修改密码命令为:passwd 例如: $ ssh [email protected] The authenticity of host '192.168.xxx.xxx (

jQuery插件学习笔记

最近在研究jQuery插件,插件编写的目的是给已经有的一系列方法或函数做一个封装,以便在其他地方重复使用,方便后期维护. JQuery除了提供一个简单.有效的方式进行管理元素以及脚本,它还还提供了例外一种机制:即给核心模块增加自己的方法和额外的功能.通过这种机制,Jquery允许我们自己创建属于我们自己的插件,提高我们在开发过程中的效率. 虽然在jQuery命名空间中,我们禁止使用了大量的javaScript函数名和变量名.但是仍然不可避免某些函数或变量名将于其他jQuery插件冲突,因此我们习

Dynamic CRM 2013学习笔记(四)单据编号及插件批量注册工具

Dynamic CRM 2013学习笔记(一)插件输入实体参数解析 Dynamic CRM 2013学习笔记(二)插件基本用法及调试 Dynamic CRM 2013学习笔记(三)快速创建实体 EntityCreater 基本上每个实体form上都会有单据编号,而且不同的实体编号要求还不太一样,这时就需要一个通用的单据编号插件,可配置以应对不同的需求. 下面简单介绍下实现步骤: 1. 创建二个实体,以保存各实体所要求的不同单据规则及当前流水号 2. 为不同的实体配置各自的单据规则 3. 编写及注

Dynamic CRM 2013学习笔记(二)插件基本用法及调试

插件是可与 Microsoft Dynamics CRM 2013 和 Microsoft Dynamics CRM Online 集成的自定义业务逻辑(代码),用于修改或增加平台的标准行为.也可以将插件认为是针对 Microsoft Dynamics CRM 触发的事件的处理程序.您可以让插件订阅或注册已知事件集,以便在事件发生时运行您的代码.   一.基本用法 1. 要继承IPlugin,并实现Excute方法 ( 1- 3 行) 2. 从service provide 里获取执行上下文 (

Dynamic CRM 2013学习笔记(十二)实现子表合计(汇总,求和)功能的通用插件

上一篇 Dynamic CRM 2013学习笔记(十一)利用Javascript实现子表合计(汇总,求和)功能 , 介绍了如何用js来实现子表合计功能,这种方法要求在各个表单上添加js方法,如果有很多实体要实现这个功能,有人觉得有点麻烦了,就不太喜欢这种方式,于是我写了一个通用的子表合计功能的通用插件,只用在注册插件时,填写不同的参数就可以实现这个功能了. 1. 首先看下效果: 2. 注册方法: 我们需要在子表上对create和update方法进行注册: 注册时要填写4个参数: 第一个参数是要被

GDI+学习笔记(九)带插件的排序算法演示器(MFC中的GDI+实例)

带插件的排序算法演示器 本节将通过一个实例来说明GDI+在MFC中的应用.这个算法演示器其实是本人算法系列的一个开端,由于csdn没有树状的目录结构,咱也只好使用链表了不是?好了,废话不多说,开始今天的文章. (一)功能说明 我们初步制定功能如下: (1). 能够通过柱状图,自动展示排序算法的交换比较过程 (2). 能够使用插件的形式进行开发.即,当新完成一个算法后,只需要完成一个插件文件(我们这里使用动态库dll),由主程序加载插件,即可进行执行,而不再需要重新编译主程序. (3). 保证主程

学习笔记——Maven实战(七)常用Maven插件介绍(上)

我们都知道Maven本质上是一个插件框架,它的核心并不执行任何具体的构建任务,所有这些任务都交给插件来完成,例如编译源代码是由maven-compiler-plugin完成的.进一步说,每个任务对应了一个插件目标(goal),每个插件会有一个或者多个目标,例如maven-compiler-plugin的compile目标用来编译位于src/main/java/目录下的主源码,testCompile目标用来编译位于src/test/java/目录下的测试源码. 用户可以通过两种方式调用Maven插