怎样给setTimeout中的处理函数添加对象参数

like961116 2002-08-14 10:51:51
我的程序大概是这样的:
<input type=text name=text1 onkeydown="keydownhandler()">
<form name=form1>
<input type=text name=text2 onkeydown="keydownhandler()">
</form>
<script>
function keydownhandler()
{
var curObj = window.event.srcElement() ;
setTimeout("resumeValue(curObj)",1000) ; //此处有问题
}
function resumeValue(obj)
{
window.alert(obj.value) ; //
}
</script>
上面的程序是不能执行的,主要是传对象参数有问题
把setTimeout那一句改程如下形式:
setTimeout("resumeValue("+curObj.name+")",1000) ;
则text1中按键可以执行resumeValue,text2中按键不行
把setTimeout那一句改程如下形式:
setTimeout("resumeValue(document.form1."+curObj.name+")",1000) ;
则text2中按键可以执行resumeValue,text1中按键不行
但是我在程序中不知道怎么区分这两种情况
请大家帮忙看看怎么解决,或者有没有其它方法
...全文
102 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
qiushuiwuhen 2002-08-14
  • 打赏
  • 举报
回复
<input type=text name=text1 onkeydown="keydownhandler()">
<form name=form1>
<input type=text name=text2 onkeydown="keydownhandler()">
</form>
<script>
function keydownhandler()
{
var curObj = window.event.srcElement;
setTimeout("resumeValue("+curObj.uniqueID+")",1000)
}
function resumeValue(obj)
{
window.alert(obj.value) ;
}
</script>
Lostinet 2002-08-14
  • 打赏
  • 举报
回复
引入:
http://lostinet.d2g.com/temp/public/delegate/delegate.js

然后你的程序变成:
<script src="http://lostinet.d2g.com/temp/public/delegate/delegate.js"></script>
<input type=text name=text1 onkeydown="keydownhandler()">
<form name=form1>
<input type=text name=text2 onkeydown="keydownhandler()">
</form>
<script>
function keydownhandler()
{
var curObj = window.event.srcElement;
setTimeout(Delegate(resumeValue).PreInvoke(curObj),1000) ;
}
function resumeValue(obj)
{
window.alert(obj.value);
}
</script>
saucer 2002-08-14
  • 打赏
  • 举报
回复
function keydownhandler()
{
var curObj = window.event.srcElement ;
setTimeout("resumeValue(document.all["+curObj.sourceIndex+"])",1000);
}

87,994

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧