JQuery中SetTimeOut传参问题探讨
程序员文章站
2023-10-28 16:19:22
无论是window.settimeout还是window.setinterval,在使用函数名作为调用句柄时都不能带参数。如果想要传入参数,自定义参数也好,事件参数event也好,...
无论是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);
function
</script>
下一篇: jq选项卡鼠标延迟的插件实例
推荐阅读
-
ASP.NET MVC中jQuery与angularjs混合应用传参并绑定数据
-
JQuery中SetTimeOut传参问题探讨
-
jquery bind(click)传参让列表中每行绑定一个事件
-
解决vue-router中的query动态传参问题
-
MyBatis注解开发中传多参问题
-
js中关于带数字类型参数传参丢失首位数字0问题
-
JavaScript中setTimeout和setInterval函数的传参及调用
-
关于SQL Server 2017中使用json传参时解析遇到的多层解析问题
-
Jquery以及AngularJS 中 Get/Post传参的使用详情
-
ASP.NET MVC中jQuery与angularjs混合应用传参并绑定数据