使用延迟和EventListener设置的页面更改页面,以单击“单击”
我试图在用户单击屏幕中的特定 div 时延迟 3 秒更改 html 页面。
document.getElementById("specificDiv").addEventListener("click", setTimeout(document.getElementById("linkToAnotherPage").click(), 3000) )
但是事件监听器不起作用。当页面加载时,加载页面 3 秒后,它会自动单击“linkToAnotherPage”。
如果有人能帮助我理解这里出了什么问题,我会很高兴。
im trying to change an html page with a delay of 3 sec when the user clicks on a specific div in the screen.
document.getElementById("specificDiv").addEventListener("click", setTimeout(document.getElementById("linkToAnotherPage").click(), 3000) )
however the eventListener doesnt work. when the page loads up it automatically clicks on the "linkToAnotherPage" after 3 sec have past since loading the page.
would love if someone could help me understand whats wrong here.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
setTimeout
采用一个函数。如果您不传递函数,它将立即运行代码。如果您传递一个函数,该函数将在指定时间后被调用。演示:因此,您的代码应更新为:
document.getElementById("specificDiv").addEventListener("click", setTimeout(() => document.getElementById("linkToAnotherPage").click(), 3000));
如果您希望它在执行单击之前等待指定的 3 秒。setTimeout
takes a function. If you don't pass a function, it will run the code immediately. If you pass a function though, the function will be invoked after the specified time. To demonstrate:So your code should be updated to:
document.getElementById("specificDiv").addEventListener("click", setTimeout(() => document.getElementById("linkToAnotherPage").click(), 3000));
if you want it to wait the 3s specified before executing the click.