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);
此教程来源于北风网
20151213Jquery学习笔记--插件的更多相关文章
- bootstrap学习笔记 插件概述
Bootstrap插件概览 在前面布局组件章节中所讨论的组件仅仅是个开始.Bootstrap自带的12种jQuery插件,扩展了功能,可以给站点添加更多的互动.即使您不是一名高级的js开发人员, 你也 ...
- kettle学习笔记——插件的安装与使用
一.概述 暂略 二.ODPS插件 https://yq.aliyun.com/articles/68911
- Dynamic CRM 2013学习笔记(一)插件输入实体参数解析
1. 问题描述 最近新建了一个post事件的插件,传入的参数处理如下: 1: if (context.InputParameters.Contains("Target") &a ...
- Dynamic CRM 2013学习笔记(二)插件基本用法及调试
插件是可与 Microsoft Dynamics CRM 2013 和 Microsoft Dynamics CRM Online 集成的自定义业务逻辑(代码),用于修改或增加平台的标准行为.也可 ...
- Dynamic CRM 2013学习笔记(四)单据编号及插件批量注册工具
基本上每个实体form上都会有单据编号,而且不同的实体编号要求还不太一样,这时就需要一个通用的单据编号插件,可配置以应对不同的需求. 下面简单介绍下实现步骤: 1. 创建二个实体,以保存各实体所要求的 ...
- Dynamic CRM 2013学习笔记(十二)实现子表合计(汇总,求和)功能的通用插件
上一篇 Dynamic CRM 2013学习笔记(十一)利用Javascript实现子表合计(汇总,求和)功能 , 介绍了如何用js来实现子表合计功能,这种方法要求在各个表单上添加js方法,如果有很多 ...
- kubernetes CSI 插件机制学习笔记
前言 最近在极客时间订阅了kubernetes的专栏,这篇文章是想记录一下自己学习 CSI 插件机制 (container-storage-interface) 的过程,加深一下记忆. 准备工作 老师 ...
- elasticsearch学习笔记——相关插件和使用场景
logstash-input-jdbc学习 ES(elasticsearch缩写)的一大优点就是开源,插件众多.所以扩展起来非常的方便,这也造成了它的生态系统越来越强大.这种开源分享的思想真是与天朝格 ...
- python3.4学习笔记(五) IDLE显示行号问题,插件安装和其他开发工具介绍
python3.4学习笔记(五) IDLE显示行号问题,插件安装和其他开发工具介绍 IDLE默认不能显示行号,使用ALT+G 跳到对应行号,在右下角有显示光标所在行.列.pycharm免费社区版.Su ...
随机推荐
- 微信公共服务平台开发(.Net 的实现)2-------获得ACCESSTOKEN
成为了开发者之后微信平台会给您appid和secret,在订阅号中是没有的,所以因该申请一下服务号 有了ACCESSTOKEN才能做添加菜单,上传/下载图片等功能 private string Get ...
- Cookie的Domain
每个Cookie都有常用的几个元素:name.value.expires.domain Cookie的Domain 设置cookies时,可以设置cookie的域名参数domain,标识cookie在 ...
- CodeForcesGym 100753B Bounty Hunter II 二分图最小路径覆盖
关键在建图 题解:http://www.cnblogs.com/crackpotisback/p/4856159.html 学习:http://www.cnblogs.com/jackiesteed/ ...
- Upgrading to EF6
In previous versions of EF the code was split between core libraries (primarily System.Data.Entity.d ...
- 关于SQL\SQL Server的三值逻辑简析
在SQL刚入门的时候,我们筛选为某列值为NULL的行,一般会采用如下的方式: SELECT * FROM Table AS T WHERE T.Col=NULL www.2cto.com 而实际 ...
- [codevs2152]滑雪
题目来源 http://www.tyvj.cn/p/1004 http://www.luogu.org/problem/show?pid=1434# http://codevs.cn/problem/ ...
- 找到的两个php爬虫,分享一下
http://www.phpdig.net/ http://www.sphider.eu/ 虽然他们的文档我都看不太懂,甚至懒得去试一下安装,但还是留着吧,以后可能用得到吧
- 成都Uber优步司机奖励政策(2月6日)
滴快车单单2.5倍,注册地址:http://www.udache.com/ 如何注册Uber司机(全国版最新最详细注册流程)/月入2万/不用抢单:http://www.cnblogs.com/mfry ...
- [转]freemaker格式化日期
转至:http://wentao365.iteye.com/blog/2047234 1.格式化日期 ${updated?string("yyyy-MM-dd HH:mm:ss") ...
- 如何查看tomcat是32位还是64位
原文地址:http://www.cnblogs.com/andysd/p/3940976.html