1.表单验证插件Validation
 
2.表单插件Form
 
3.动态事件绑定插件livequery
可以为后来的元素绑定事件
 
类似于jQuery中的live()方法
 
 
4.jQuery UI
 
5.jQuery Cookie
 
6.遮罩层插件:thickbox
 
7.编写jQuery插件
<1>编写插件的目的:给已经有的一些列方法或函数做一个封装,一遍在其他地方使用,方便后期维护和提高开发效率。
 
<2>三种类型的插件
a:封装对象方法的插件  jQuery.fn.extend()
b:封装全局函数的插件  jQuery.extend()
c:选择器插件  jQuery.extend()
 
<3>插件内部的this指向的是jQuery对象,而不是DOM对象。
 
8.对于
的补充。
 
<1>插件的基本要点
 
<2>jQuery.extend()方法处理可以用于扩展jQuery对象之外,还有一个强大的功能,就是用于扩展已有的Object对象。
例如:
var settings={va: false, li: 5, name:"foo"};
var options={va: true, name:"bar"};
var newSet=jQuery.extend(settings,options);
 
结果:
newSet={va: true, li: 5, name:"bar"};
 
所以:jQuery.extend()方法经常被用于设置插件方法的一系列默认参数。
例子:
function foo(options){
options=jQuery.extend({
name:"bar",
length:5,
dataType:"xml"
},options);
}
<2>封装方法的插件使用
例子:写color插件。
1.js文件命名:jQuery.color.js
 
2.格式
;(function($){

})(jQuery);
 
3.由于是封装方法的插件使用:jQuery.fn.extend()
;(function($){
$.fn.extend({
"color":function(value){ }
})
})(jQuery);
 
4.this的可链式调用性
;(function($){
$.fn.extend({
"color":function(value){
return this.css("color",value); //为了可链式调用,返回this
}
})
})(jQuery);
5.两个功能:设置与获取color
;(function($){
$.fn.extend({
"color":function(value){
if(value==undefined){
return this.css("color"); //为了可链式调用,返回this
)else{
return this.css("color",value);
}
}
})
})(jQuery);
 
6.插件提升
a:由于css方法本身具有返回第一个匹配元素的功能,所以不需要使用eq()来获取第一个元素
b:由于css方法内部已经有判断value是否为undefined的机制,所以可以省略if
最终:
;(function($){
$.fn.extend({
"color":function(value){
return this.css("color",value);
}
})
})(jQuery);
 
7.实际使用:
<script>

;(function($){
$.fn.extend({
"color":function(value){
return this.css("color",value);
}
})
})(jQuery); //应用
$(function(){
alert($("div").color()); //获取第一个color
$("div").color("red"); //设置所有的div的color为red
}) </script>
8.插件扩展:如果要定义一组插件可以这么写
;(function($){
$.fn.extend({
"color":function(value){ },
“border”:function(value){ },
...
})
})(jQuery);
 
9.注意:jQuery选择符可能会匹配多个元素,可以在插件内部调用each()方法来遍历匹配元素。
如:
;(function($){
$.fn.extend({
"color":function(value){
return this.each(function(){ })
}
})
})(jQuery);
 
<3>封装全局函数的插件使用
例子:去除左侧和右侧的空格
;(function($){
$.extend({
ltrim:function(text){
return (text || "").replace(/^\s+/g,"");
}, rtrim:function(text){
return (text || "").replace(/^\s+$/g,"");
} })
})(jQuery); //调用
$("div").val(
jQuery.ltrim(" text ")
)
 
<4>选择器插件
$("div:gt(1)")
 
jQuery中的源码是:
gt:function(a,i,m){
    return i>m[3]-0;
}
有三个参数:a,i,m
 
 
 
 

锋利的jQuery--编写jQuery插件(读书笔记五)[完结篇]的更多相关文章

  1. AngularJS in Action读书笔记6(实战篇)——bug hunting

    这一系列文章感觉写的不好,思维跨度很大,原本是由于与<Angularjs in action>有种相见恨晚而激发要写点读后感之类的文章,但是在翻译或是阐述的时候还是会心有余而力不足,零零总 ...

  2. 《锋利的Jquery第二版》读书笔记 第二章

    本章节主要Jquery选择器 jquery选择器与css选择器十分相似,特别需要注意的是 <script type="text/javascript"> documen ...

  3. 《jQuery基础教程》读书笔记

    最近在看<jQuery基础教程>这本书,做了点读书笔记以备回顾,不定期更新. 第一章第二章比较基础,就此略过了... 第三章 事件 jQuery中$(document).ready()与j ...

  4. 《锋利的Jquery第二版》读书笔记 第一章

    按照书本介绍顺序整理jquery库相关的语法.要点. window.onload与$(document).ready()功能类似,前者需要所有资源加载完毕,且不能同时编写多个:后者加载完DOM结构即执 ...

  5. 《锋利的Jquery第二版》读书笔记 第三章

    DOM操作的分类 1.DOM Core不专属JavaScript,任何一种支持DOM的程序设计语言都可以使用它,也可以处理XML等标记语言编写出来的文档,getElementById().setAtt ...

  6. 【锋利的Jquery】读书笔记五

    jquery表单 表格操作 表单从基本的得到和失去焦点表单验证 <script type="text/javascript"> $(function(){ $(&quo ...

  7. 《JQuery技术内幕》读书笔记——自调用匿名函数剖析

    Javascript语言中的自调用匿名函数格式如下: (function(){ //do somethings })(); 它还有另外两种等价写法如下: //等价写法一 (function(){ // ...

  8. 锋利的jQuery--jQuery事件,动画(读书笔记二)

    1.注意$(document).ready()方法和window.onload方法之间的细微区别 $(document).ready()在DOM树构建完成就会执行,而window.onload是在DO ...

  9. 《梦断代码》读书笔记第0篇——“软件时间”、“死定了”、“Agenda之魂“

    第0章  软件时间 在未读这本书前,刚看到名字觉得是本讲代码的书,后来老师说是一个个的故事,这引起了我的兴趣,于是我便速速开始了第0章的阅读,读完一遍大概能读懂在讲什么,可能由于是译过来的书,书里面一 ...

随机推荐

  1. SQL Server-表表达式基础回顾(二十四)

    前言 从这一节开始我们开始进入表表达式章节的学习,Microsoft SQL Server支持4种类型的表表达式:派生表.公用表表达式(CTE).视图.内嵌表值函数(TVF).简短的内容,深入的理解, ...

  2. .net 分布式架构之分布式缓存中间件

    开源git地址: http://git.oschina.net/chejiangyi/XXF.BaseService.DistributedCache 分布式缓存中间件  方便实现缓存的分布式,集群, ...

  3. Asp.net Core 初探(发布和部署Linux)

    前言 俗话说三天不学习,赶不上刘少奇.Asp.net Core更新这么长时间一直观望,周末帝都小雨,宅在家看了下Core Web App,顺便搭建了个HelloWorld环境来尝尝鲜,第一次看到.Ne ...

  4. 代码的坏味道(21)——中间人(Middle Man)

    坏味道--中间人(Middle Man) 特征 如果一个类的作用仅仅是指向另一个类的委托,为什么要存在呢? 问题原因 对象的基本特征之一就是封装:对外部世界隐藏其内部细节.封装往往伴随委托.但是人们可 ...

  5. 屌丝giser成长记-大学篇

    作为一名屌丝giser的我,刚接触gis专业是2007年的大一,好悲催,当时gis这个专业是被调剂的,我压根都不知道gis为何物,那时候gis冷门的一逼,报名这个专业的寥寥无几.记得那时候得知被调剂到 ...

  6. ExecuteOrDelayUntilScriptLoaded 还是 SP.SOD.executeFunc?

    SharePoint 客户端 JS 开发时,要等待 SharePoint 对象都加载完毕再调用自己的方法(myFunction),可以有两种方式: ExecuteOrDelayUntilScriptL ...

  7. 深入理解 Android 之 View 的绘制流程

    概述 本篇文章会从源码(基于Android 6.0)角度分析Android中View的绘制流程,侧重于对整体流程的分析,对一些难以理解的点加以重点阐述,目的是把View绘制的整个流程把握好,而对于特定 ...

  8. (转)从0开始搭建SQL Server AlwaysOn 第一篇(配置域控+域用户DCADMIN)

    原文地址: http://www.cnblogs.com/lyhabc/p/4678330.html 实验环境: 准备工作 软件准备 (1) SQL Server 2012 (2) Windows S ...

  9. 解决mysql插入数据时出现Incorrect string value: '\xF0\x9F...' for column 'name' at row 1的异常

    这个问题,原因是UTF-8编码有可能是两个.三个.四个字节.Emoji表情或者某些特殊字符是4个字节,而MySQL的utf8编码最多3个字节,所以数据插不进去. 我的解决方案是这样的 1.在mysql ...

  10. 用apt-file解决找不到头文件的问题

    在编译C语言的开源项目的时候,经常会出现头文件找不到的问题. 解决这类问题有一个特别好用的工具apt-file 1.在ubuntu下安装 sudo apt install apt-file 2.更新索 ...