在没有焦点的情况下捕获画布上的第一次单击事件

Capturing first click event on a canvas without focus

本文关键字:第一次 事件 单击 焦点 情况下      更新时间:2023-09-26

我有一个Canvas,它会响应上面的mousedown事件。然后我会向DOM添加一个输入元素,并将其绝对定位,使其位于画布上。

然后,用户单击输入元素并输入一些文本后,再单击返回画布。我的问题是,第一次单击只是将焦点设置回画布,而不是在画布元素上注册为mousedown事件。

我该怎么做才能确保第一次点击已注册?

如何附加事件?除非有情有可原的情况,否则这应该"起作用"。

这里有一个例子:

http://jsfiddle.net/bSpe4/

根据代码的外观,为画布提供选项卡索引值也可能有所帮助。

theCanvas.tabIndex = 0; // might fix your particular issue

我刚刚遇到了这个问题。我需要同时听左键和右键的点击,并且使用了mousedown

万一有人发现这个,就像我刚刚发现的一样。我"已解决";通过将事件附加到CCD_ 5而不是CCD_。

这样,焦点发生在mousedown上,事件触发在mouseup上,这对我正在做的事情来说很好。