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了,而是变成了我给他绑定的这个节点对象.




  • 相关阅读:
    jQuery插件jTemplates(模板)
    js常用正则
    SQLServer笔记 //20111027
    神经网络感知器matlab实现
    求全排列(无重复字母)
    python 学习笔记(1、数据类型)
    WampServer 不能打开phpmyadmin 的解决办法
    求一个整形数组里子序列和最大的算法
    堆排序算法的实习(C++)
    归并排序
  • 原文地址:https://www.cnblogs.com/see7di/p/2247735.html
Copyright © 2011-2022 走看看