jquery.callback.js jq 回调

插件源码 jquery.callback.js 
插件开源地址: https://gist.github.com/4580276 

(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; 
                            };
                        }
                    }
                }
            }
        },
        /** 
        * @decription 移除给方法添加的回调函数 
        * @param funcName : string 已添加回调的函数名称 
        * @param callback : function 回调函数 
        * @param static : boolean 是否是类方法,默认为false 
        */ 
        removeCallback: function(funcName, callback, static){ 
            if ("string" === typeof(funcName) && $.isFunction(callback)) { 
                if (static === true) {
                    if($[funcName] && $.isFunction($[funcName])){ 
                        if(this._callbacks[funcName]){ 
                            this._callbacks.remove(callback); 
                        } 
                    } 
                } else {
                    if ($.fn[funcName] && $.isFunction($.fn[funcName])) {
                        if (this._callbacks_[funcName]) {
                            this._callbacks_.remove(callback); 
                        }
                    } 
                } 
            } 
        }
    });
})(jQuery);
高否?富否?帅否? 否? 滚去学习!
原文地址:https://www.cnblogs.com/baixc/p/4640643.html