您好,想请教下载JS中setTimeout中函数的写法是怎么样的呢?

请看以下代码,onKeyUp延时500毫秒后执行函数finit(this),请教下如何才能执行此函数,要求保留括号中的this,下面这样写是不是单双引号没写对的问题?
<input id=ss name="S_T" type=text onKeyUp= setTimeout('finit(this)', 500) >

小唯快跑啊
浏览 191回答 2
2回答

qq_遁去的一_1

如果在settimeout里面使用this,最终到执行时,this代表window,因为这是延时执行,执行的对象this是setTimeout,所以折衷的办法是提前获得对象并赋给一个名称,然后再使用。<input id=ss name="S_T" type="text" onkeyup="window.S_T=this; setTimeout('finit(S_T)', 500);" />

慕少森

你这样是传不进去的,它当字符产处理了;<!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>
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java
JavaScript