请教JS中setTimeout中函数的写法

请看以下代码,onKeyUp延时500毫秒后执行函数finit(this),请教下如何才能执行此函数,要求保留括号中的this,下面这样写是不是单双引号没写对的问题?<i... 请看以下代码,onKeyUp延时500毫秒后执行函数finit(this),请教下如何才能执行此函数,要求保留括号中的this,下面这样写是不是单双引号没写对的问题?
<input id=ss name="S_T" type=text onKeyUp= setTimeout('finit(this)', 500) >
展开
 我来答
sicf
2012-10-05 · TA获得超过916个赞
知道小有建树答主
回答量:584
采纳率:100%
帮助的人:595万
展开全部
如果在settimeout里面使用this,最终到执行时,this代表window,因为这是延时执行,执行的对象this是setTimeout,所以折衷的办法是提前获得对象并赋给一个名称,然后再使用。

<input id=ss name="S_T" type="text" onkeyup="window.S_T=this; setTimeout('finit(S_T)', 500);" />
flloor
2012-10-05 · TA获得超过360个赞
知道小有建树答主
回答量:196
采纳率:0%
帮助的人:216万
展开全部
不是单双引号的问题
如果你一定要这么写的话,似乎无解this到你finit中后就会是window而不是你要的input
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
tiandesgin
2012-10-05 · TA获得超过169个赞
知道小有建树答主
回答量:357
采纳率:100%
帮助的人:238万
展开全部
你这样是传不进去的,它当字符产处理了;
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
<!--
我建议你不要像你那样写代码,现在提倡三个文件分开,html css javascript,
如果你把样式、js 直接写在标签里面,那么出问题了,你就是满地找牙,
分而治之,htnl代码页很干净,css js 的代码页能集中管理,维护
-->
<script type="text/javascript" src="js/jquery.min.js"></script>
<script type="text/javascript">
//jquery实现
$(function(){
$("#timer").keyup(function(){
setTimeout(function(){
//do something,你是不是延迟验证
alert("验证开始");
},500);
});
//下面你还可以写更多的代码
})
//纯javaScript实现
/*window.onload = function(){
var timer = document.getElementById("timer");
timer.onkeyup = function(){
setTimeout(function(){
//do something,你是不是延迟验证
alert("验证开始");
},500);
};
//下面你可以写更多的代码
};*/
</script>
</head>
<body>
<input type="text" id="timer" />
</body>
</html>
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式