[英]Why won't setTimeout() work?
我试图让我的函数在运行前等待3秒钟。 看起来确实很简单,但是由于某种原因,我不断得到:
未定义slideFunction
控制台中的错误。 如果我仅调用该函数而不尝试使用setTimeout
那么它将起作用。 怎么了
window.onclick = slideFunction;
setTimeout(slideFunction, 3000); {
document.getElementById('#img3').style.marginLeft = "100px";
}
它可以工作,但是您要调用的函数需要定义并成为一个函数。 例:
function slideFunction(){ document.getElementById('img3').style.marginLeft = "100px"; } document.body.onclick = () => setTimeout(slideFunction, 3000);
#img3 { width: 50%; border: 1px solid red; height: 100px; transition: margin-left .3s cubic-bezier(.4,0,.2,1); } body,html {height: 100%;margin: 0;}
<div id="img3"></div> <button onclick="document.location.reload(true)">Reload</button>
一些问题:
.getElementById('#img3')
不正确。 它是.getElementById('img3')
或.querySelector('#img3')
,除非您元素的id
确实是#img3
即: <img id="#img123" src>
,在这种情况下,它是无效的: ID和NAME令牌必须以字母([A-Za-z])开头,后跟任意数量的字母,数字([0-9]),连字符(“-”),下划线(“ _”) ,冒号(“:”)和句点(“。”)。
window.onclick
应该是document.body.onclick
您正在寻找的整个解决方案:
function slideFunction(){
document.getElementById('#img3').style.marginLeft = "100px";
}
window.onclick = slideFunction;
setTimeout(slideFunction, 3000);
感谢大家的帮助。 我确实设法使其能够按需使用
function slideFunction(){
document.getElementById('#img3').style.marginLeft = "100px";
}
document.body.onclick = () => setTimeout(slideFunction, 3000);
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.