[整理] jQuery插件开发
1、类级别的插件开发
类级别的插件开发,可似为给jQuery类添加方法,调用方式:$.你的方法(),如:$.ajax() 函数。
1.1、给jQuery类添加方法
$.alertMsg = function(msg){
	alert("alertMsg : " + msg);
};
// 调用
// $.alertMsg("hello");
1.2、给jQuery类添加带命名空间的方法
$.myPlugin = {
	alertMsg : function(msg){
		alert("myPlugin.alertMsg : " + msg);
	},
};
// 调用
// $.myPlugin.alertMsg("hello");
1.3、使用 jQuery.extend 给jQuery类添加方法
$.extend({
	alertMsg2 : function(msg){
		alert("alertMsg2 : " + msg);
	},
	// 调用
	// $.alertMsg2("hello");
	myPlugin2 : {
		alertMsg : function(msg){
			alert("myPlugin2.alertMsg : " + msg);
		},
	},
	// 调用
	// $.myPlugin2.myPlugin2("hello");
});
2、对象级别的插件开发
对象级别的插件开发,可似为给jQuery对象添加方法,调用方式:$(对象).你的方法(),如:$("body").css() 函数。
2.1、给jQuery对象添加方法
$.fn.alertText = function(msg){
	alert("alertText : " + this.text() + " , " + msg);
};
// 调用
// $(elem).alertText("hello");
2.2、给jQuery对象添加带名命空间的方法
$.fn.myPlugin = {
	alertText : function(msg){
		// this 为 myPlugin 对象,要获取事件源,使用event.target
		alert("myPlugin.alertText : " + $(event.target).text() + " , " + msg);
	},
};
// 调用
// $(elem).myPlugin.alertText("hello");
$.fn.myPlugin2 = function(method){
	var methods = {
		init : function(){
			alert("myPlugin2.init");
		},
		alertText : function(msg){
			alert("myPlugin2.alertText : " + this.text() + " , " + msg);
		},
	};
	if(methods[method]){
		return methods[method].apply(this, Array.prototype.slice.call(arguments, 1));
	}else{
		return methods.init();
	}
};
// 调用
// $(elem).myPlugin2(); // $(elem).myPlugin2("init");
// $(elem).myPlugin2("alertText", "hello");
2.3、 使用 jQuery.fn.extend 给jQuery对象添加方法
$.fn.extend({
	alertText2 : function(msg){
		alert("alertText2 : " + this.text() + " , " + msg);
	},
	// 调用
	// $(elem).alertText2("hello");
	myPlugin3 : {
		alertText : function(msg){
			// this 为 myPlugin 对象,要获取事件源,使用event.target
			alert("myPlugin3.alertText : " + $(event.target).text() + " , " + msg);
		},
	},
	// 调用
	// $(elem).myPlugin3.alertText("hello");
	myPlugin4 : function(method){
		var methods = {
			init : function(){
				alert("myPlugin4.init");
			},
			alertText : function(msg){
				alert("myPlugin4.alertText : " + this.text() + " , " + msg);
			},
		};
		if(methods[method]){
			return methods[method].apply(this, Array.prototype.slice.call(arguments, 1));
		}else{
			return methods.init();
		}
	}
	// 调用
	// $(elem).myPlugin4(); // $(elem).myPlugin4("init");
	// $(elem).myPlugin4("alertText", "hello");
});
[整理] jQuery插件开发的更多相关文章
- JavaScript学习笔记(四)——jQuery插件开发与发布
		
jQuery插件就是以jQuery库为基础衍生出来的库,jQuery插件的好处是封装功能,提高了代码的复用性,加快了开发速度,现在网络上开源的jQuery插件非常多,随着版本的不停迭代越来越稳定好用, ...
 - JavaScript学习总结(四)——jQuery插件开发与发布
		
jQuery插件就是以jQuery库为基础衍生出来的库,jQuery插件的好处是封装功能,提高了代码的复用性,加快了开发速度,现在网络上开源的jQuery插件非常多,随着版本的不停迭代越来越稳定好用, ...
 - jQuery插件开发精品教程,让你的jQuery提升一个台阶
		
要说jQuery 最成功的地方,我认为是它的可扩展性吸引了众多开发者为其开发插件,从而建立起了一个生态系统.这好比大公司们争相做平台一样,得平台者得天下.苹果,微软,谷歌等巨头,都有各自的平台及生态圈 ...
 - jquery插件开发
		
jQuery是一个封装的很好的类,比如我们用语句$("#btn1") 会生成一个 jQuery类的实例. 一.jQuery插件开发注意要点 1.使用闭包,避免全局依赖,避免第三方破 ...
 - jQuery插件开发(溢出滚动)
		
声明:此程序仅针对手机端,简单的封装一个插件,意在记载插件的开发过程,如有错误及不足之处,还望即时指出. 移动开发的时候,我们经常会遇到滑动事件,众所周知手机端滑动主要依靠touch事件.最近接连遇到 ...
 - 从零开始学jQuery插件开发
		
http://www.w3cfuns.com/notes/19462/ec18ab496b4c992c437977575b12736c.html jQuery 最成功的地方,是它的可扩展性,通过吸引了 ...
 - jquery插件开发继承了jQuery高级编程思路
		
要说jQuery 最成功的地方,我认为是它的可扩展性吸引了众多开发者为其开发插件,从而建立起了一个生态系统.这好比大公司们争相做平台一样,得平台者得天下.苹果,微软,谷歌等巨头,都有各自的平台及生态圈 ...
 - jQuery插件开发(转)
		
jQuery插件开发全解析 jQuery插件的开发包括两种: 一种是类级别的插件开发,即给jQuery添加新的全局函数,相当于给jQuery类本身添加方法.jQuery的全局函数就是属于jQuery命 ...
 - jQuery插件开发的两种方法及$.fn.extend的详解
		
jQuery插件开发分为两种: 1 类级别 类级别你可以理解为拓展jquery类,最明显的例子是$.ajax(...),相当于静态方法. 开发扩展其方法时使用$.extend方法,即jQuery.ex ...
 
随机推荐
- 常量Const
			
常量Const YEAR = 2019 # 全部大写的变量名为常量 注释 给不能理解的写一个描述 便于理解 增强可读性 三种形式 单行(当行)注释:# 只注释一行 不能换行 注释的代码不执行 不使用 ...
 - intellIJ IDEA学习笔记
			
如果你初次用idea,毫无目的的度娘如何使用IDEA 浪费的将会是大量的时间.为以表诚意, 上一套IDEA教学视频,以表我诚意.(下载地址:https://pan.baidu.com/s/1g ...
 - git:将代码提交到远程仓库(码云)
			
初始化 进入一个任意的文件夹(如D:\aqin_test1\) git init # 初始化,让git将这个文件夹管理起来 git add . # 收集此文件夹下的所有文件 git config -- ...
 - Vue的冒泡事件
			
由于业务需求需要,需要在一个元素中的子元素添加一个点击事件. 但是刚好父元素也有一个点击事件.这个时候我们就需要使用到Vue中的阻止事件冒泡了.
 - Django Mysql数据库-基于双下划线的跨表查询
			
一.基于双下划线的跨表查询 Django 还提供了一种直观而高效的方式在查询(lookups)中表示关联关系,它能自动确认 SQL JOIN 联系.要做跨关系查询,就使用两个下划线来链接模型(mode ...
 - 如何利用jenkins插件查看allure报告-----完整篇(解决404和无数据问题)
			
背景: python3+appium+pytest+allure写了安卓的自动化脚本,在windows本机pycharm上跑通过后生成了allure报告. 公司jenkins搭建在linux服务器上 ...
 - Unity移动游戏加载性能和内存管理-学习笔记
			
前言 正在学习Doctor 张.鑫大佬的移动游戏加载性能和内存管理,内容非常非常的干,所以我烧了很多开水,边喝边看,一边拿小本几做好笔记 本文只是关于前2章的内容笔记,关于各种资源的加载耗时 纹理资源 ...
 - Spring源码剖析开篇:什么是Spring?
			
在讲源码之前,先让我们回顾一下一下Spring的基本概念,当然,在看源码之前你需要使用过spring或者spirngmvc. Spring是什么 Spring是一个开源的轻量级Java SE(Java ...
 - springboot 项目的https的发布
			
1.生成密钥证书 生成命令: keytool -genkey -alias tomcat -storetype PKCS12 -keyalg RSA -keysize -keystore keysto ...
 - Java网络编程之UDP
			
Java网络编程之UDP 一.C/S架构中UDP网络通信流程 ①创建DatagramSocket与DatagramPacket对象 ②建立发送端,接收端 ③建立数据包 ④调用Socket的发送.接收方 ...