jQuery中回调对象

作者: ferrint | 来源:发表于2017-03-01 20:28 被阅读22次

关键词:回调对象

语法:
var call = $.Callbacks('once','memory','unique','stopOnFalse');

参数

  • 'once':只触发一次
  • 'memory':有记忆功能
  • 'unique':去除重发的添加
  • 'stopOnFalse':当函数return false时候不执行

方法

  • add();
  • remove();
  • fire(); 执行

例子:

    function fn1() {
        console.dir("f1")
    }
    function fn2() {
        console.dir("f2")
    }
    function fn3() {
        console.dir("f3")
    }

    var call = $.Callbacks('once','memory','unique','stopOnFalse');
    call.add(fn1);
    call.add(fn1);
    call.add(fn2);
    call.fire();  // 
    call.add(fn3);
    call.remove(fn1);
    call.fire();  // 

说完了使用方法,那有什么用呢?

    function a(){
        console.log(1);
    }
    (function(){
        function b(){
    console.log(2);     
    }
    call.add(b);    
    })()
    a();  //1
    b();  // not defined

和想象的一样,报错了,那怎么办呢,这是个匿名函数,又不能用闭包。
这时候我们可以用延迟对象了

 var call = $.Callbacks();
   (function(){
       function b(){
   console.log(2);     
   }
   call.add(b);    
   })()
   a();  //1
   // b();  // not defined
   call.fire();  //2

没错,就这么简单!

再来一个

  setTimeout(function(){
        console.log('setTimeout');
    },0)
  console.log('global');

setTimeout会在global之后打印出来,即使设为0s也无济于事,这是js的执行顺序决定的,那我们现在这样做:

  var call = $.Callbacks();

    setTimeout(function(){
        console.log('setTimeout');
        call.fire();
    },1000)
    
  call.add(function () {
    console.log('global'); 
  })

这样我们就可以按照自己想要的顺序执行了

相关文章

  • jQuery中回调对象

    关键词:回调对象 语法:var call = $.Callbacks('once','memory','uniqu...

  • jQuery中的deferred对象

    deferred对象简单来说就是jQuery的回调函数解决方案。 一、ajax中的链式写法 jQuery中ajax...

  • JQ第五部分源码学习

    JQ的回调对象处理,通过回调对象管理函数 对函数的统一管理 jQuery.Callbacks = function...

  • 2021-01-29

    33、jQuery 库中的 $() 是什么? () 函数用于将任何对象包裹成 jQuery 对象,接着你就被允许调...

  • 常用知识点

    属性选择: jQueryUI: 功能 鼠标关标点位到input deferred对象就是jQuery的回调函数解决...

  • jquery事件绑定

    事件绑定 1. jquery标准的绑定方式 jq对象.事件方法(回调函数); 注:如果调用事件方法,不传递回调函数...

  • JQuery瞬间回想1

    1、jQuery 对象的 $().each() 方法 此方法可用于例遍任何对象。回调函数拥有两个参数:第一个为对象...

  • jQuery|Callback

    Callback 顾名思义,就是回调的意思,但是在jQuery中这个回调时有个先后顺序的。 Callback 函数...

  • javascript回调函数

    javascript回调函数很玄幻。 jquery 中大量使用了回调函数。直到现在才看懂 普通回调函数 匿名回调函...

  • apply和call语句

    运动框架的应用实例 结合 异步和回调函数 中的 「回调函数2」我们可以试图在回调函数中,用this表示oDiv对象...

网友评论

    本文标题:jQuery中回调对象

    本文链接:https://www.haomeiwen.com/subject/rsecgttx.html