温故而知新之JQuery-CallBack

news/2024/7/11 1:15:49 标签: jquery

Callback

低版本应该没有Jquery这个callback

CallBack到底有什么用呢?其实就是回掉,当别人外部动态传一个函数过来,你执行完毕你的代码之后就调用一下别人的函数,典型的就是ajax,javascript原生可以使用call和apply实现类似效果,如果对call和apply不清楚的,可以去深入了解,这里不累赘

callbacks.add

加入到回掉函数集合里面

CallBack基本用法:

var foo = function( value ){
    console.log( 'foo:' + value);
}
var callbacks = $.Callbacks();

callbacks.add( foo );

callbacks.fire("hello");    //output  foo:hello

上面这段代码,callbacks.fire("hello");就会触发执行一次foo方法,输出foo:hello

function test(value, callBackFun) {
    var callbacks = $.Callbacks();
    callbacks.add( callBackFun );
    callbacks.fire(value);    //output  foo:hello
}

test('Nickwu', function(value) {
    console.log('My name is '+ value);
});

//运行,输出:My name is Nickwu

可以看到,也是巧妙的执行了Fun回调函数

继续看Demo

function fn1( value ){
    console.log( value );
}

function fn2( value ){
    fn1("fn2 says:" + value);
    return false;
}

var callbacks = $.Callbacks();
callbacks.add( fn1 );
callbacks.fire( "foo!" ); // outputs: foo!

callbacks.add( fn2 );
callbacks.fire( "bar!" ); // outputs: bar!, fn2 says: bar!
var callbacks = $.Callbacks();
callbacks.add( fn1 );
callbacks.fire( "foo!" ); // outputs: foo!

callbacks.add( fn2 );
callbacks.fire( "bar!" ); // outputs: bar!, fn2 says: bar!

callbacks.remove(fn2);
callbacks.fire( "foobar" ); 

// only outputs foobar, as fn2 has been removed.

callbacks.fired()

判断是否执行了回调函数

callbacks.disable()

禁用回调函数

callbacks.empty()

清空回调函数集合里面所有的函数集合

callbacks.fire()

执行集合里面的函数,可带参数

callbacks.has()

判断是否存在这个回调函数

callbacks.lock()

锁定集合里面的回调函数

callbacks.locked()

判断回调函数集合是否被锁定

callbacks.remove()

移除某个回调函数


http://www.niftyadmin.cn/n/1198205.html

相关文章

使用cocos制作一个简易的小闹钟

使用cocos制作一个简易的小闹钟 本文转载至 学习使用Cocos制作《闹钟》 使用的引擎版本是cocos2.1 具体开发过程指导 (1)Cocos Studio部分 1.打开Cocos工具,新建一个项目: 2.设置好相关的配置,点击完成,从而发布到Cocos Studio中&…

使用JavaScript拦截和跟踪浏览器中的HTTP请求

http://www.ibm.com/developerworks/cn/web/wa-lo-jshttp/index.html转载于:https://blog.51cto.com/tianxing/1655412

Skype for Business Server 2015-04-前端服务器-2-创建一个文件共享

申明:文章中部分内容有涉及官方帮助或者网上资源整合,如有违权,请速与作者联系,谢谢!作者:316191099qq.com培训:Skype for Business Server 2015-项目实战-培训-QQ群:65235615。(学员…

ITQ迭代量化方法解析

一.问题来源 来源于换关键字,从LSH转换为hash检索,这要感谢李某。 二.解析 笔者认为关键思想是数据降维后使用矩阵旋转优化,其他和LSH一样的。 2.1 PCA降维 先对原始空间的数据集 X∈Rnd 用PCA进行降维处理,设经过PCA降维后的数据…

WEB安全之XSS和CRSF攻击

XSS 定义 XSS攻击类似于SQL注入攻击,攻击之前,我们先找到一个存在XSS漏洞的网站,XSS漏洞分为两种,一种是DOM Based XSS漏洞,另一种是Stored XSS漏洞。理论上,所有可输入的地方没有对输入数据进行处理的话…

Java多线程下载文件

Java多线程下载文件 优化:合理利用服务器资源,将资源利用最大化,加快下载速度 一般有两种方式: 线程池里面有N个线程,多线程下载单个文件,将网络路径的文件流切割成多快,每个线程下载一小部…

Android 后台Service下载

2019独角兽企业重金招聘Python工程师标准>>> 一、前言 原理其实大家都懂,只不过没动手实际好好的写过,项目中也没有涉及到用这块内容,所以....所以被人问及细节时,就说不清个123了,为了一改我的慵懒&#x…

改造Vmware里的FastDFS为Docker

改造前 公司的FastDFS环境是采用Vmware三个Centos7,改造前所有服务都是可用的,但是每次不小心关机以后启动的服务太多,太麻烦 一台Tracker服务器两台Storage 改造原因 配置复杂,尽管写了个文档维护,还是配置比较多&…