zoukankan      html  css  js  c++  java
  • 定时器setTimeout()的传参方法

    更具体的代码:http://www.cnblogs.com/3body/p/5416830.html

    // 由于setTimeout()的延迟执行特性,所以在执行的函数中直接使用外部函数的变量是无法获取到的,因为当执行的时候变量已经销毁了。所以,这里就使用了一个闭包的方法来达到能调用外部函数的目的。
    // 通常的setTimeout(function(){...},100)是这样写的,也就是第一个参数是个函数,里面是要执行的代码片段。
    // 这里就使用了闭包的方法return function(){...},第一个参数则接收到了一个函数,并往闭包中传入参数,这样就能先将变量赋给闭包的形参,里面的函数调用的就是闭包的形参,外部函数的销毁便不会影响到函数的执行了
    addUl=setTimeout(function(a,id,width){
        return function(){
            $.post(
            '<{:U("Index/type")}>',
            {'id':id},
            function(data){
                if (data) {
                    var ul='<ul style="background:white;position:absolute;left:'+width+'px;top:-1px;z-index:100;border:1px solid #6386ae";>';
                    var id;
                    var href;
                    $.each(data,function(n,v){
                        id=v['type_id'];
                        // 不能使用array()传参,并且还要加上Home
                        href='<{:U("Home/Pro/more/type/'+id+'")}>';
                        ul+='<li style="margin:0;padding:0;text-align:center;100px;height:40px;overflow:hidden;" title="'+v['type_name']+'"><a href="'+href+'" style="margin:0;auto;">'+v['type_name']+'</a></li>';
                    });
                    ul+='</ul>';
                    a.after(ul);
                };
            }
            );
        }
    }(a,id,width),200);
    
    
    
    // 第二种传参方法:第二个参数之后的参数就是传的参数
    setTimeout(function(num){
        alert(num);  //弹出123
    },1000,123);
  • 相关阅读:
    kali长时间未使用导致数字签名过期无法更新源解决办法
    4.爬虫去重策略
    3.编码问题
    kalinux 五笔安装
    ★★★kalinux 常用命令
    安装vm tools时出现如下问题 The path "/usr/bin/gcc" is not valid path to the
    kalinux实现自适用全屏、与物理主机共享文件方法
    wifi pj WiFiPhisher 安装使用
    条款20:在传递对象的时候尽量用reference-to-constent来代替,pass-by-value
    条款19:定义class就相当于定义一个个的内置类型
  • 原文地址:https://www.cnblogs.com/3body/p/5416834.html
Copyright © 2011-2022 走看看