给jQuery方法添加回调函数

本文介绍了如何在jQuery方法中添加回调函数,通过分享的插件源码jquery.callback.js,展示了在HTML和JavaScript中实现这一功能的方法,从而实现更灵活的事件处理和控制流程。
摘要由CSDN通过智能技术生成

插件源码 jquery.callback.js

插件开源地址: https://gist.github.com/4580276

/**
 * @fileOverview 本插件用于给jQuery方法添加回调函数,可在类方法或实例方法添加任何自定义的回调函数而不影响原方法的行为
 * @dependency jQuery1.7+
 * @author huhai
 * @since 2013-01-21
 */
(function($){
	$._callbacks = {};
	$._callbacks_ = {};
	$._alias = {};
	$._alias_ = {};

	$.extend({

		/**
		 * @decription 给方法添加回调函数
		 * @param funcName : string 需要添加回调的函数名称
		 * @param callback : function 回调函数(如需移除,不要使用匿名方法)
		 * @param static : boolean 是否是类方法,默认为false
		 */
		addCallback : function(funcName, callback, static){
			if("string" === typeof(funcName) && $.isFunction(callback)){
				if(static === true){
					if($[funcName] && $.isFunction($[funcName])){
						if(!this._callbacks[funcName]){
							this._callbacks[funcName] = $.Callbacks();		
						}
						this._callbacks[funcName].add(callback);
						if(!$._alias[funcName]){
							$._alias[funcName] = $[funcName];//寄存原来的类方法
							
							$[funcName] = function(){//代理类方法;
							var result = $._alias[funcName].apply(this, arguments);
							$._callbacks[funcName].fireWith(this, arguments);
							return result;
							};
						}						
					}
				}else{
					if($.fn[funcName] && $.isFunction($.fn[funcName])){
						if(!this._callbacks_[funcName]){
							this._callbacks_[funcName] = $.Callbacks();		
						}
						this._callbacks_[funcName].add(callback);
						if(!$._alias_[funcName]){
							$._alias_[funcName] = $.fn[funcName];//寄存原来的实例方法
							$.fn[funcName] = function(){//代理实例方法;
								var result = $._alias_[funcName].apply(this, arguments);
								$._callbacks_[funcName].fireWith(this, arguments);
								return result;
		
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值