今天学到的JS小技巧

0 views
Skip to first unread message

刘利

unread,
Aug 15, 2008, 4:43:38 AM8/15/08
to gaofuliang
funtion ajax_publisher_changer(id)
{
......
}

想通过setTimeout延迟执行上面这个函数应该怎么作?

一开始使用setTimeout(ajax_publisher_change(id),1000);
但是没有延迟效果,查了好久才发现原因是传给setTimeout的函数名是不能带参数的,
window.setTimeout("delayRun(param)", n);
这样子的强行传参是错误的,除非param是window上的全局变量。

但是我又必须传参数,可以用匿名函数包装一下需要调用的函数,如下所示:
这样就能把参数id传进去了,延迟效果也会正常产生。
function ajax_get_mediaList(){
var id = document.getElementById("selectPublisher").value;
setTimeout(function(){ajax_publisher_change(id);},1000);
}

吴斯

unread,
Aug 18, 2008, 5:45:05 AM8/18/08
to gaofu...@googlegroups.com
不错, 以后JS就交给你了.

 
在08-8-15,刘利 <derf...@gmail.com> 写道:
Reply all
Reply to author
Forward
0 new messages