• setTimeout传参


    unction test(s)
    {
        alert(s);
    }
    window.setTimeout(function(){test('str');},1000);

    这样就可以了...
    为什么是这样呢.
    因为setTimeout要求的第一个参数是函数...比如setTimeout(a_fun,1000)这样是可以的,a_fun是一个函数.
    但是setTimeout(a_fun(),1000);这样就不行了.因为这里a_fun()其实是函数的返回值了...这样讲应该能明白了.
    另外,不推荐网上有人用的方法setTimeout('test(1)',1000);这样的形式,因为这个有很多情况下是不实用的.
    如果实在要用这种方法,只能这样:setTimeout("test('"+param+"')",100);这种方式。

    还有一种方法:

    function timeClick(obj)  
           {  
            //   var obj=document.getElementById('');  
               obj.style.backgroundColor="gray";  
               obj.onclick=function(){ return false;};  
               setTimeout(function(){resetbgColor(obj);},3000);  
           }  
             
           function resetbgColor(obj)  
           {  
             //  var obj=document.getElementById('');  
               obj.style.backgroundColor="";  
            //   $('#'+'').click(timeClick);  
          //  debugger;  
               obj.onclick=function(){  
                   timeClick(this);  
               };  
           }  

    我发现这句还真是万能啊,太服了, function(){ method(param);} 

              这里两个地方都用到了,解决了我的所有问题,1.setTimeout传参数 2.动态设置onclick事件 

             setTimeout(function(){resetbgColor(obj);},3000); 


              obj.onclick=function(){ 
                    timeClick(this); 
                };

    还有一种方法:

    <script language="JavaScript" type="text/javascript">
    <!--
    var userName="jack";
    //根据用户名显示欢迎信息
    function hello(_name){
           alert("hello,"+_name);
    }
    //创建一个函数,用于返回一个无参数函数
    function _hello(_name){
           return function(){
                 hello(_name);
           }
    }
    window.setTimeout(_hello(userName),3000);
    //-->
    </script>

    这 里定义了一个函数_hello,用于接收一个参数,并返回一个不带参数的函数,在这个函数内部使用了外部函数的参数,从而对其调用,不需要使用参数。在 window.setTimeout函数中,使用_hello(userName)来返回一个不带参数的函数句柄,从而实现了参数传递的功能。

  • 相关阅读:
    如何为基于windows验证的站点的某个页面、文件或文件夹单独设置匿名访问
    JMeter基础
    selenium select操作及其他补充
    HTML面试
    第一天
    AspNetPager 7.4.2版发布
    java移位运算copy来的。为了备忘
    android 开发中的错误
    启动android模拟器报错
    最省内存的方式加载图片资源
  • 原文地址:https://www.cnblogs.com/wpcnblog/p/6744813.html
Copyright © 2020-2023  润新知