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);
时间: 2024-10-29 05:17:58

jquery.callback.js jq 回调的相关文章

jq的“钉”插件--jquery.pin.js

一大早浏览博客园时,看到小鹿同学写了一个jquery.pin.js的使用总结,觉得在日常编码过程中用得上,就随着他的总结看了一下,并自己写了个demo.  常见的,一般浏览网页时右侧有个“回到顶部”的字眼或图片,鼠标往下滑动时,这个“回到顶部”一直在浏览器的同一位置,好像钉在那块一样.往常,碰到这个需求时,我都是用: position: fixed; 代码来实现.看过小鹿同学的博客之后,结合jquery.pin.js的作用,想到确实有那种将某个页面元素钉在某段文本旁边的需求,所以也学习了一下.下

【jq】插件—缓存jquery.cookie.js

jquery.cookie.js插件   轻量级cookie管理 1°下载地址:http://plugins.jquery.com/cookie/ 2°引入方式:(基于jquery) <script type="text/javascript" src="js/jquery-1.6.2.min.js"></script> <script type="text/javascript" src="js/jque

jQuery框架使用,jq选择器,jq操作页面内容, jq操作类名,jq操作全局属性,jq获取盒子信息,jq获取位置信息,js/jq页面加载完毕事件,jq事件

jq选择器 // 获取所有的页面元素jq对象 $('css3选择器语法'); var $box = $(".box:nth-child(1)"); 获取的是jq对象数组 // 拿到指定的页面元素jq对象 $('css3选择器语法').eq(index); var $box = $(".box").eq(1); 获取的是jq对象数组 // jq 转 js ( jq对像就是由数组包裹的js对象 ) box1 = $box[0] 从数组里取出来 box1 = $box.g

jquery.pagination.js分页

参数说明 参数名 描述 参数值 maxentries 总条目数                           必选参数,整数 items_per_page 每页显示的条目数                       可选参数,默认是10 num_display_entries 连续分页主体部分显示的分页条目数                       可选参数,默认是10 current_page 当前选中的页面                      可选参数,默认是0,表示第1页

ecshop2.7.3 transposrt.js和 jquery 等js框架冲突最简单最新的解决办法

适用于 ecshop v2.7.3 由于ecshop中的 transport.js 中重写的json解析 导致各种js框架不兼容和处理前台和后台html文档时不便. parseResult() error: can't parse to JSON 等错误 ,由此考虑替换掉 json解析.(不影响原有功能) 方法 1 引入 jquery.js ,jquery.json.js 2 修改 transport.js 为以下内容 /**  * @file            transport.js  

页面滚动图片等元素动态加载插件jquery.scrollLoading.js

如果一个网页很长,那么该页面的加载时间也会相应的较长.而这里给大家介绍的这个jQuery插件scrollLoading的作用则是,对页面元素进行动态加载,通俗的说就是滚到哪就加载到哪,屏幕以下看不见的就不用加载了.这样还可以在一定程度上节省服务器资源.该插件作者的网页将该插件的功能和使用方法描述的非常详细,这里把最一般最普遍的使用情况给大家展现一下. 插件作者:http://www.zhangxinxu.com/ 首先我们需要加载jQuery库和本插件js文件. (jquery.scrollLo

无刷新分页 jquery.pagination.js

1.使用插件为 jquery.pagination.js ,如果没有这个js文件的话,我可以给发个. 首先引用 jquery.pagination.js (分页js),跟pagination.css(分页样式css). 点击获取查看这两个文件 2.页面js代码为 <script type="text/javascript"> var pageIndex = 0; //页面索引初始值 var pageSize = 15; //每页显示条数初始化,修改显示条数,修改这里即可 $

jquery.validation.js 表单验证

jquery.validation.js 表单验证 官网地址:http://bassistance.de/jquery-plugins/jquery-plugin-validation jQuery plugin: Validation 使用说明 一导入js库 <script src="../js/jquery.js" type="text/javascript"></script> <script src="../js/jq

ajax分页实现,jquery.pagination.js

1.前台使用ajax无刷新分页,主要需要生成分页的工具条,这里使用的是jquery.pagination.js 插件参数可以参考----张龙豪-jquery.pagination.js分页 下面贴出代码 1 /** 2 * This jQuery plugin displays pagination links inside the selected elements. 3 * 4 * @author Gabriel Birke (birke *at* d-scribe *dot* de) 5