使用延迟和EventListener设置的页面更改页面,以单击“单击”

发布于 2025-01-17 12:54:59 字数 303 浏览 0 评论 0原文

我试图在用户单击屏幕中的特定 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

弥枳 2025-01-24 12:54:59

setTimeout 采用一个函数。如果您不传递函数,它将立即运行代码。如果您传递一个函数,该函数将在指定时间后被调用。演示:

setTimeout(console.log('Hello World 2'), 5000)
setTimeout(() => console.log('Hello World 1'), 5000)

因此,您的代码应更新为: 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:

setTimeout(console.log('Hello World 2'), 5000)
setTimeout(() => console.log('Hello World 1'), 5000)

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.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文