javascript - 如何等待 Canvas 上的点击

标签 javascript html mouseevent wait

我想在我的程序中“暂停”。基本上,每次我调用 wait() 函数时,在单击 Canvas 之前不会发生任何事情。

Drawrectangle(a,b,c,d)
waitforclick()
drawrectangle(e,f,g,h)

将绘制第一个矩形,直到单击 Canvas 后才会绘制第二个矩形。感谢您的帮助。

最佳答案

您可能以错误的方式看待这个问题。停止程序可能不是最好的主意,因为您希望尽快执行。 JavaScript 的一大优势是它内置了一个很棒的事件 API。

不要让程序等待/ sleep ,而是尝试使用事件:

drawrectangle(a, b, c, d);

让我们创建一个在检测到点击事件时运行的函数:

function customClickEventHandler(event) {
  drawrectangle(e, f, g, h);
}

最后,将新函数绑定(bind)到窗口的“单击”事件。您可以选择任何 DOM 元素,而不仅仅是窗口。

window.addEventListener('click', customOnClickEvent);

文档

事件API:https://developer.mozilla.org/en/docs/Web/API/Event

点击此链接可了解有关“addEventListener”函数的更多信息: https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/addEventListener

更新

如果您想添加多个处理程序,很简单:

function eventHandler1(event) {
  // do something...
}

function eventHandler2(event) {
  // do something else...
}

window.addEventHandler('click', eventHandler1);
window.addEventHandler('click', eventHandler2);

关于javascript - 如何等待 Canvas 上的点击,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29179231/

相关文章:

javascript - 如何在 css/javascript 中制作随分辨率缩放的全出血背景图像?

javascript - HTML 必需标签不适用于公司和名称

html - 解决冲突的 CSS。如何添加选择器?

java - 如何实现鼠标监听器

winforms - 如何在 Powershell 表单中向鼠标右键菜单添加选项

javascript - 将可观察到的响应合并为一个

javascript - 将参数转换为对象?

javascript - 初始化后如何更改 map 控件的位置?

c# - 如何分别处理ChartControl上的MouseClick和MouseDoubleClick事件

javascript - 以悬停工具提示样式的子导航为中心不起作用