我想让我的功能在运行前等待3秒钟。这似乎非常简单,但出于某种原因,我一直得到:
控制台中出现未定义slideFunction
错误。如果我只是在不尝试使用setTimeout
的情况下调用该函数,它就可以工作。这有什么不对?
window.onclick = slideFunction;
setTimeout(slideFunction, 3000); {
document.getElementById('#img3').style.marginLeft = "100px";
}
答案 0 :(得分:1)
它可以工作,但是你要调用的函数需要被定义并成为一个函数。例如:
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
答案 1 :(得分:0)
您正在寻找的整个解决方案:
function slideFunction(){
document.getElementById('#img3').style.marginLeft = "100px";
}
window.onclick = slideFunction;
setTimeout(slideFunction, 3000);
答案 2 :(得分:0)
感谢大家的帮助。我确实设法让我的工作如何使用
function slideFunction(){
document.getElementById('#img3').style.marginLeft = "100px";
}
document.body.onclick = () => setTimeout(slideFunction, 3000);
}