Javascript中setTimeout的用法?

下面这段代码中为什么要使用两个setTimeout?另外为什么没有$(document).ready(function(){});这段代码.css这种方法也会生效?
setTimeout(onWidthChange,1000);

function onWidthChange()
{
if( $(window).scrollTop() > 1300 ) {
$("html").css("background","black");
}
setTimeout(onWidthChange,1000);
}

1、使用两个setTimeout 第个用意是1秒后调用onWidthChange函数,第二处是在函内部每当函数运行结束1秒后再次调用onWidthChange函数,这里实现了每过1秒都会调用onWidthChange函数。

2、$(document).ready(function(){});
文档载入完成执行,如果代码在文档底部执行,文档说明已加载过了。这里就可以不用
温馨提示:内容为网友见解,仅供参考
第1个回答  2013-08-13
$(document).ready(function(){}); 中的方法,是在页面执行完成后调用。

如果不在$(document).ready(function(){});中, 则当加载页面时,加载到setTimeout
相应的位置时,就生效了。 等1000毫秒后,onWidthChange方法也加载完成,正好可以执行。
第2个回答  2013-08-13
用2个setTimeout是递归,相当于setInterval
$(document).ready(function(){});是为了在载入DOM后运行,不需要等待页面完全载入,比如页面有很多图片的话,不需要等待图片完全载入就可以运行js
第3个回答  2018-06-27
setTimeout(code,millisec)
var t = setTimeout("javascript语句", 毫秒)
setTimeout() 方法会返回某个值。在上面的语句中,值被储存在名为 t 的变量中。假如你希望取消这个 setTimeout(),你可以使用这个变量名来指定它。
setTimeout() 的第一个参数是含有 JavaScript 语句的字符串。这个语句可能诸如 "alert('5 seconds!')",或者对函数的调用,诸如 alertMsg()"。
第二个参数指示从当前起多少毫秒后执行第一个参数
参数
code (必需):要调用的函数后要执行的 JavaScript 代码串。
millisec(必需):在执行代码前需等待的毫秒数。
提示
setTimeout() 只执行 code 一次。如果要多次调用,请使用 setInterval() 或者让 code 自身再次调用 setTimeout()。
实例
实例1:
<html>
<head>
<script type="text/javascript">
function timedMsg()
{
var t=setTimeout("alert('5 seconds!')",5000)
}
</script>
</head>
<body>
<form>
<input type="button" value="Display timed alertbox!" onClick="timedMsg()">
</form>
<p>Click on the button above. An alert box will be displayed after 5 seconds.</p>
</body>
</html>
第4个回答  推荐于2018-05-18

setTimeout() 方法用于在指定的毫秒数后调用函数或计算表达式。

<script type="text/javascript">
function timedMsg()
{
var t=setTimeout("alert('5 seconds!')",5000)
}
</script>
<form>
<input type="button" value="Display timed alertbox!"
onClick="timedMsg()">
</form>

相似回答