jQuery插件示例笔记
插件的种类
- 封装对象方法的插件
将对象方法封装起来,用于对通过选择器获取的jQuery对象进行操作。
//注意,为了更好的兼容性开始前有个分号
;(function($){ //此处将$作为匿名函数的形参
/*这里放置代码,可以使用$作为jQuery的缩写别名*/
})(jQuery);//这里就将jQuery作为实参传递给匿名函数了
- 封装全局函数的插件
可以将独立的函数加到jQuery命名空间之下。
- 选择器插件
扩充自己的选择器
插件示例
设置颜色插件
(function ($) {
$.fn.extend({
"color": function (value) {
//if (value == undefined) {
// return this.css("color");
//} else {
// return this.css("color", value);
//}
//css()方法内部已经有了判断value是否为undefined的机制,所以可以采用下面的写法
return this.css("color", value);
},
"border": function (value) { },
"background": function (value) {
return this.css('background', value);
}
});
})(jQuery);
设置表格插件,奇偶行,选中状态
(function ($) {
$.fn.extend({
"alterBgColor": function (options) {
options = $.extend({
odd: "odd", //偶数行样式
even: "even", //奇数行样式
selected:"selected" //选中行样式
},options);
return this.each(function () {
$("tbody>tr:odd", this).addClass(options.odd);
$("tbody>tr:even", this).addClass(options.even);
$("tbody>tr", this).click(function () {
//判断当前行是否选中
var hasSelected = $(this).hasClass(options.selected);
//如果选中,则移除selected类,否则就加上selected类
$(this)[hasSelected ? "removeClass" : "addClass"](options.selected)
//查找内部的checkbox,设置对应的属性
.find(':checkbox').attr('checked', !hasSelected);
});
//如果单选框默认情况下是选择的,则高亮
$("tbody>tr:has(:checked)", this).addClass(options.selected);
});
}
});
})(jQuery);
去除头部空格,尾部空格插件
(function ($) {
$.extend({
trimStart: function (text) {
return (text || "").replace(/^\s+/g, "");
},
trimEnd: function (text) {
return (text || "").replace(/\s+$/g, "");
}
});
})(jQuery);
选择器插件,选择范围。
jQuery1.3版本能用,1.8及以后版本不能使用
(function ($) {
$.fn.extend(jQuery.expr[':'], {
between2: function (a, i, m,arr) {
var tmp = m[3].split(',');
var ret = tmp[0] - 0 < i && i < tmp[1] - 0;
return ret;
},
ge: function (a, i, m) {
return i >= m[3] - 0;
},
le: function (a, i, m) {
return i <= m[3] - 0;
}
});
})(jQuery);
jQuery插件示例笔记的更多相关文章
- 锋利的jQuery--编写jQuery插件(读书笔记五)[完结篇]
1.表单验证插件Validation 2.表单插件Form 3.动态事件绑定插件livequery 可以为后来的元素绑定事件 类似于jQuery中的live()方法 4.jQuer ...
- jquery插件 - 学习笔记 (插件参数及函数的调用)
今天研究的是jquery插件的基本写法: 比如我打算写一个名为 ImageZoom 的插件 前台调用: <script src="ImageZoom.js"></ ...
- 基于 Webpack 引入 jquery 插件的笔记
如果都是基于 webpack(npm 上有包),那就非常顺利: import $ from 'jquery' import 'jquery-modal/jquery.modal.min.css' im ...
- jQuery插件学习笔记
近期在研究jQuery插件,插件编写的目的是给已经有的一系列方法或函数做一个封装,以便在其它地方反复使用,方便后期维护. JQuery除了提供一个简单.有效的方式进行管理元素以及脚本,它还还提供了例外 ...
- jQuery插件编写笔记
插件的种类: 1.封装对象方法的插件. 2.封装全局函数的插件. 3.选择器插件. *所有的对象方法都应当附加到jQuery.fn对象上,而所有的全局函数都应当附加到jQuery对象本身上. *在插件 ...
- day 57 jQuery插件
在jQuery的console里面 '321'+8 输出结果是"3218" 直接作为字符串给拼接上了 如果是"321"-8 输出结果就是313 直接转换成数 ...
- 简易jQuery插件
之前写过jQuery插件的笔记 如何用jQuery封装插件 我一直觉得前面讲了一大堆闭包和三种插件封装模式有点冗余,那篇笔记我直到记录到后面才发现这事情很简单,想来想去还是觉得网上的一些文章把事情搞复 ...
- DOM笔记(七):开发JQuery插件
在上一篇笔记本中,讲解了如何利用jQuery扩展全局函数和对象:DOM笔记(六):怎么进行JQuery扩展? 在这篇笔记本中,将开发一个简单的动画插件,名称是example-plugin,用其实现一个 ...
- 教你开发jQuery插件(转)
教你开发jQuery插件(转) 阅读目录 基本方法 支持链式调用 让插件接收参数 面向对象的插件开发 关于命名空间 关于变量定义及命名 压缩的好处 工具 GitHub Service Hook 原文: ...
随机推荐
- 64_l3
libguac-client-ssh-0.9.13-3.20170521git6d2cfda...> 23-May-2017 09:58 64570 libguac-client-ssh-0.9 ...
- 实现点击页面其他地方,隐藏div(vue)
方法一: 通过监听事件 document.addEventListener('click',function(e){ if(e.target.className!='usermessage'){ th ...
- centos7.4通过yum安装mysql
安装环境:CentOS7 64位 MINI版,安装MySQL5.7 1.配置YUM源 在MySQL官网中下载YUM源rpm安装包:http://dev.mysql.com/downloads/repo ...
- make :err Makefile.ssl is older than Makefile.org. Reconfigure the source tree (via './config' or 'perl Configure'), please.
内核编译时出现错误 Makefile.ssl is older than Makefile.org. Reconfigure the source tree (via './config' or 'p ...
- Leetcode 之Count and Say(35)
很有意思的一道题,不好想啊. string getNext(string &s) { ]; ; stringstream ss; ; i < s.size(); i++) { if (s ...
- 关于自适应屏幕,设置子元素浮动,父div不能包裹子div,子元素中内容溢出的问题。
设置HTML适应不同分辨率的屏幕. 需求结构如下: HTML结构代码如下(只是其中一条): <body> <div class="content">< ...
- [PAT] 1147 Heaps(30 分)
1147 Heaps(30 分) In computer science, a heap is a specialized tree-based data structure that satisfi ...
- OpenStack 安装数据库和rabbitmq消息队列 (三)
一)安装配置数据库 1.1.安装包 # yum install mariadb mariadb-server python2-PyMySQL -y 1.2.配置数据库 # vim /etc/my.cn ...
- .Net WebAPI 增加Swagger
第一部分:创建项目 选择Web/ASP.NET Web Application 这里我选择的是WebAPI,并且增加MVC和Web API,权限部分选择无权限 第二部分:增加EF连接 因为项目需要连接 ...
- Eclipse Qt开发环境的建立
1.下载Eclipse目前Eclipse+CDT已经可以集成下载了,好像优化过了,速度还比较快.下载的地址是:http://www.eclipse.org/downloads/,选择“Eclipse ...