×

JQuery中SetTimeOut传参

作者:ceshi2017.06.27来源:Web前端之家浏览:3964评论:0
关键词:JQueryJS

无论是window.setTimeout还是window.setInterval,在使用函数名作为调用句柄时都不能带参数。如果想要传入参数,自定义参数也好,事件参数event也好,解决办法是在此函数的基础上在做一层封装。其具体原理还不清楚,但是下边的办法确实能解决这个问题先来看个简单的例子:

function show(){ 
alert("Hello World"); 
} 
setTimeout(show,1000);

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

setTimeOut(show(),1000);

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

setTimeOut("show()",1000);

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

setTimeOut("show(name)",1000)

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

script language="javascript"> 
function show(name){
    alert("Hello World:" + name);
} 
function _show(name){ 
    return function(){ 
        show(name); 
    } 
} 
setTimeout(_show(name),1000); 
</script>

您的支持是我们创作的动力!
温馨提示:本文作者系 ,经Web前端之家编辑修改或补充,转载请注明出处和本文链接:
https://www.jiangweishan.com/article/svg1488124800789.html

网友评论文明上网理性发言 已有0人参与

发表评论: