• 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);
    高否?富否?帅否? 否? 滚去学习!
  • 相关阅读:
    Python
    12C配置EM Express的https端口
    在与 SQL Server 建立连接时出现与网络相关的或特定于实例的错误
    Java – How to add days to current date
    Java – Display all ZoneId and its UTC offset
    Java 8 – Period and Duration examples
    Java 8 – Convert Instant to ZonedDateTime
    Java 8 – Convert Instant to LocalDateTime
    Java 8 – How to format LocalDateTime
    how-to-convert-string-to-localdate
  • 原文地址:https://www.cnblogs.com/baixc/p/4640643.html
Copyright © 2020-2023  润新知