zoukankan      html  css  js  c++  java
  • Mootools中delay这个延迟函数的高级用法

    这是一种最简单的用法:

    (function(){
      alert('one second later...');
    }).delay(1000);

    这个函数会在1秒之后自动被执行

    我们看一下delay这个函数的实现方法:

    delay: function(delay, bind, args){
      return setTimeout(this.pass((args == null ? [] : args), bind), delay);
    }

    很显然,它是使用了setTimeout来实现的,那么既然如此我们就可以清理他,下边是实现方法:

    var Fun=function(msg){
        alert('fd');
    };
    var
    timer=Fun.delay(5000);
    //做某些操作之后清理timer
    clearTimeout(timer);

    接下来我说一下他的高级用法:

    var Fun=function(msg){
    alert(typeOf(this))//查看被绑定对象的类型
    alert(this.get('tag')+'|'+msg);//显示对象名称和传递的参数
    };
    //2秒后执行Fun,同时把id='tab1'这个对象传递给Fun这个函数让其this为$('tab1'),然后传递一个参数
    Fun.delay(2000,$('tab1'),'啊');

    这段代码的意思是,延迟2秒,然后执行Fun这个函数,因为Fun这个函数我用了this,而默认状况下this对应的对象是window对象,而我却希望这个函数能够操作某个节点,所以呢,我就把对节点的绑定传递给了他,然后再传递msg,此时在函数内使用this是对象就不再是window了,而是变成了我给他绑定的这个节点对象.




  • 相关阅读:
    mysql网文收录
    centos7编译安装memcached
    计算机网络网文
    操作系统网文
    redis网文
    【Leetcode】746. Min Cost Climbing Stairs
    【Leetcode】198. House Robber
    【Leetcode】121. Best Time to Buy and Sell Stock
    【Leetcode】1. Two Sum
    函数的参数 2018-3-27
  • 原文地址:https://www.cnblogs.com/see7di/p/2247735.html
Copyright © 2011-2022 走看看