setTimeout()这个方法不执行

作者&投稿:董恒 (若有异议请与网页底部的电邮联系)
js setTimeout函数不执行~

大哥们你们不知道有闭包这东西吗..function 内是可以有function的
function docomment_form_hidden(doid, id) {
var showid = 'docomment_form_'+doid+'_'+id;
var hiddenid = 'docomment_form_show_'+doid+'_0';
var focusid = 'do_message_'+doid+'_'+id;
var append_parent = 'append_parent';
function timeoutshow(){
$(showid).style.display = 'none';
$(hiddenid).style.display = '';
}
setTimeout("timeoutshow();",2000)
$(append_parent).innerHTML = '';
}
在这里你运行不了是因为setTimeout("timeoutshow();",2000)这句话的根对象是window,编译器会自动去全局变量里查timeoutshow()函数,当然是没有的,正确写法是setTimeout(timeoutshow,2000)

setTImeout里面函数的双引号还是要加上的,至于为什么没反应,你用调试工具一调试就知道,原来是报“obj没有定义”的错误。这里的 var obj = $(this); 要使用全局变量,否则IcoMove()这个函数得不到传值。关键代码如下:
$(".right > div.convenience").find("a").hover(function(){obj = $(this); // 设置为全局变量Timeout = setTimeout("IcoMove(obj)",1000);},function(){clearTimeout(Timeout);}); 个人建议如果非要使用上述方法的话,这个全局变量的命名要尽量复杂特殊一点,以避免污染其它变量,引起不必要的麻烦。另外你还可以试试jQuery原生态的delay()延迟函数,代码会更简洁。

setTimeout()方法的第一个参数是一个闭包,它指定了要运行的函数。它的第二个参数是一个数值,表示的是以毫秒计算的运行延时。注意传递给setTimeout()的第一个参数也可以是表示执行代码的字符串,如果是字符串,那么setTimeout()方法会调用Function对象将这个字符串构造成函数执行。
setTimeout及setinterval都是异步执行的函数,就是它会在触发事件发生(延迟时间)之后去执行调用事件,这个过程并不会中断顺序执行的过程,而不是象c语言中的delay一样,延迟的是顺序执行的过程。而该过程大概是开启了另外的一个线程。

把顺序换一换就应该可以实现了


settimeout(set time out中文翻译,set time out是什么意思,set time...
set time out发音 英:美:set time out中文意思翻译 常见释义:设置超时 set time out双语使用场景 1、Set time-out values for batch or query execution higher than you expect it will take to execute the batch or query.───将批处理或查询执行的超时值设置为大于您所预期的值。2、I d...

settimeout()与setinterval()方法区别介绍
setTimeout和setInterval是JavaScript中的两个定时器方法,它们的主要区别在于执行的方式和频率。setTimeout方法:单次定时执行:setTimeout方法用于在指定的毫秒数后执行一个函数或代码段,仅执行一次。简单延迟功能:它主要用于延迟一段时间后执行某个操作,而不是周期性地执行。setInterval方法:周期性定时...

settimeout和setinterval同时使用settimeout和setinterval的区别_百度...
1、因为setTimeout(表达式,延时时间)在执行时,是在载入后延迟指定时间后,去执行一次表达式,记住,次数是一次而setInterval(表达式,交互时间)则不一样,它从载入后,每隔指定的时间就执行一次表达式所以,完全是不一样的很多人习惯于将setTimeout包含于被执行函数中,然后在函数外再次使用setTimeout来达到定时...

从setTimeout了解JS函数的执行时机
一开始主线程执行console.log(1),紧接着检测到setTimeout()函数,把它移交给响应的异步线程处理,之后主线程就跳过setTimeout(),继续执行下面的console.log(3);一开始任务队列是空的,主线程中的setTimeout()进入异步线程后,开始执行,经过1秒钟的延迟后,setTimeout()的回调函数进入任务队列,主...

setTimeout详解
setTimeout的参数可以是函数名或可执行的代码字符串,但它们在回调函数执行的作用域上有所不同。函数形式的回调执行的是setTimeout所在作用域,而字符串形式则利用eval在全局作用域中执行。至于参数传递,函数形式更推荐,因为它能避免可能的全局作用域污染。此外,如果需要在回调中传参,可以采用闭包、bind...

setTimeout和setInterval的返回值是什么类型的,它有什么意义
这个很简单 直接console.log(typeof setTimeout(function(){},10000)) 就可以得到 number,他在意义在与我们可以用他返回的这个值与终止它 如 clearTimeout(80),clearInterval(89)

为什么setTimeout可以解决栈溢出问题?
setTimeout的本质是将同步函数调用改成异步函数调用,这里的异步调用是将foo封装成事件,并将其添加进消息队列中,然后主线程再按照一定规则循环地从消息队列中读取下一个任务。这样就不会形成类似于递归那样,“一层套一层”的调用链。下一次函数调用时,上一个“父”函数的调用已经执行完毕。也就不...

setTimeout语法
第一个参数是代码字符串,可以包含简单的语句如alert,或者对函数的调用。第二个参数是延迟执行的毫秒数。如果你需要取消这个延时,可以使用返回的值(如上述例子中的t)来清除定时器。下面是一些使用setTimeout的实例:实例1:点击按钮后,5秒后会显示警告框。实例2:显示当前时间 对于带参数的setTime...

setTimeOut和setInterval工作原理
setTimeout在指定的延迟时间到达后 向ui队列添加一个任务,函数会立即执行。并不是说在指定的Time后,ui一定会立马执行,而是在Time之后添加一个任务。通常setTimeout执行时的时间会比我们设定的Time要长。因为这个任务会等待队列中的其他任务执行完之后再执行。对于setInterval,和setTimeout一样,会在...

setTimeout的返回值
答案:1. setTimeout 是有返回值的, 表示当前setTimeout在页面中的所有setTimeout中的序号。2. 作用:当使用clearTimeout的时候,就可以直接传入序号,准确结束掉某个setTimeout

襄汾县17651183341: setTimeout()这个方法不执行 -
西响重组: 把顺序换一换就应该可以实现了

襄汾县17651183341: setTimeout("函数1",500) -
西响重组: 不是循环执行. 是等500毫秒之后在执行函数1. 应该叫延迟执行. 循环执行的方法是 setInterval("函数",时间)是先等500毫秒以后,再执行函数1. 函数1是后执行的.

襄汾县17651183341: javascript setTimeout怎么用 -
西响重组: var mytimer = window.setTimeout("your_function()", timeout_ms); 设置 timeout_ms 毫秒后运行 your_function()函数. 如果还没到运行时间你想把这个任务取消,可以: window.setTimeout(mytimer);

襄汾县17651183341: 谁知道 setTimeout 和 setInterval 的不通
西响重组: 这两个方法都可以用来实现在一个固定时间段之后去执行JavaScript.不过两者各有各的应用场景.这两种方法可能看起来非常像,而且显示的结果也会很相似,不过两者的最大区别就是,setTimeout方法不会每隔5秒钟就执行一次showTime函数,它是在每次调用setTimeout后过5秒钟再去执行showTime函数.这意味着如果showTime函数的主体部分需要2秒钟执行完,那么整个函数则要每7秒钟才执行一次.而setInterval却没有被自己所调用的函数所束缚,它只是简单地每隔一定时间就重复执行一次那个函数.

襄汾县17651183341: javascript中 设置了setTimeout 下面代码 会立即执行不 -
西响重组: 会,setTimeout下面的代码不会等待,会立即执行,只有该方法的第一参数中的语句或函数指向会等待指定的时间后执行.

襄汾县17651183341: javaScript中的setTimeout返回值有什么用? -
西响重组: setTimeout(function,time) 用处是延迟time毫秒再此执行function,而他返回的是这个超时调用的id,也就是这个setTimeout的唯一标示符. 假如你向阻止这个超时调用,就需要用到这个id 如 var st=setTimeout(function,time); 这是你忽然向立即执行function了,这样你就可以如此写: clearTimeout(st); 这就是其返回值的作用,即作为一个引用,指向setTimeout

襄汾县17651183341: javascript settimeout 为什么不安设定时间执行 -
西响重组: 是的,不是按照设定时间执行的 javascript 是单线程的,所以,你的settimeout不是马上执行 而是等到系统有空的时候才开始的!可能等到系统开始有空的时候时间已经过了你就会发现这句怎么 没执行! 所以,不是不按照设定时间执行,而已推迟了!

襄汾县17651183341: JS里clearTimeout()方法是什么方法? -
西响重组: clearTimeout() 方法可取消由 setTimeout() 方法设置的 timeout 下面的例子每秒调用一次 timedCount() 函数.您也可以使用一个按钮来终止这个定时消息: var c=0var tfunction timedCount() { document.getElementById('txt').value=c c=c+1 t=setTimeout("timedCount()",1000) }function stopCount() { clearTimeout(t) }

襄汾县17651183341: 如何几个定时器同时开 setinterval -
西响重组: setTimeout()<br><br>setTimeout()方法用来指定某个函数或字符串在指定的毫秒数之后执行.它返回一个整数,表示定时器的编号,这个值可以传递给clearTimeout()用于取消这个函数的执行<br><br>以下代码中,控制台先输出0,大概过...

襄汾县17651183341: JavaScript setTimeout函数不起作用 -
西响重组: 由于JavaScript是解释型语言,所以“var obj=document.getElementById("status")”语句可能在文档加载完成前已经执行,这时候getElementById函数会返回null.你可以设置标签使得IE浏览器在HTML文档加载完成后再执行JavaScript脚本.......var obj=document.getElementById("status");setTimeout("obj.innerHTML=' ' ",3000);......

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网