zoukankan      html  css  js  c++  java
  • setTimeOut传参数(转)

    突然想到在一个函数中延时调用另外一个函数,在JQuery1.3.2中没有发现相应方法,在网上搜索,搜集如下,特做个完整保存:

    (1)转自:http://blog.csdn.net/nsrainbow/article/details/2370329 原文如下

    无论是window.setTimeout还是window.setInterval,在使用函数名作为调用句柄时都不能带参数。

    先看一个简单的代码:

    Javascript代码  收藏代码
    1. function show(){      
    2.     alert("Hello World");  
    3. }  
    4. setTimeout(show,1000);  



    这段代码的效果是在1秒后显示hello world,但是如果改成

    setTimeOut(show(),1000);

    就会立即显示,达不到延时的效果了。但是如果加上引号就可以了。如:

    setTimeOut("show()",1000);

    就可以了。但是如果带上参数的话,还是不行比如:

    setTimeOut("show(name)",1000)

    这时就了一个比较的方法,就是再写个函数,该函数返回一个不带参数的函数,具体如下:

    Javascript代码  收藏代码
    1. <script language="javascript">  
    2.     function show(name)  
    3.     {alert("Hello World:" + name);}  
    4.   
    5.     function _show(name)  
    6.     {  
    7.         return function()  
    8.         {  
    9.             show(name);  
    10.         }  
    11.     }  
    12.     setTimeout(_show(name),1000);  
    13. </script>  



    (2)转自http://blog.csdn.net/huanglan513/article/details/5669912 原文如下


    setTimeout传参数问题,弄了很久,终于解决了,O(∩_∩)O哈!




    view plain

    Javascript代码  收藏代码
    1. function timeClick(obj)    
    2.        {    
    3.         //   var obj=document.getElementById('');    
    4.            obj.style.backgroundColor=&quot;gray&quot;;    
    5.            obj.onclick=function(){ return false;};    
    6.            setTimeout(function(){resetbgColor(obj);},3000);    
    7.        }    
    8.            
    9.        function resetbgColor(obj)    
    10.        {    
    11.          //  var obj=document.getElementById('');    
    12.            obj.style.backgroundColor=&quot;&quot;;    
    13.         //   $('#'+'').click(timeClick);    
    14.       //  debugger;    
    15.            obj.onclick=function(){    
    16.                timeClick(this);    
    17.            };    
    18.        }    



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

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

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


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

  • 相关阅读:
    Python_函数
    Python中元组,列表,字典的区别
    Oracle 在字符串中输入单引号或特殊字符
    Visual Studio Code管理MySQL
    Python .pyc的编译和反编译
    Django 模板变量之 forloop
    浅谈Django基础(HttpResponse、render、redirect)
    Django 使用form表单提交数据报错: Forbidden (403)
    Django出错提示TemplateDoesNotExist at /
    使用 vs code 创建 Django 项目
  • 原文地址:https://www.cnblogs.com/zhaoxinshanwei/p/5886878.html
Copyright © 2011-2022 走看看