我有一个 Canvas 可以响应mousedown
上面的事件。然后,我将一个输入元素添加到 DOM,并将其绝对定位,使其位于画布上。
然后用户点击输入元素并输入一些文本,然后他们点击回到画布。我的问题是第一次单击只是将焦点设置回画布,但没有注册为mousedown
画布元素上的事件。
我可以做些什么来确保第一次点击被注册?
我有一个 Canvas 可以响应mousedown
上面的事件。然后,我将一个输入元素添加到 DOM,并将其绝对定位,使其位于画布上。
然后用户点击输入元素并输入一些文本,然后他们点击回到画布。我的问题是第一次单击只是将焦点设置回画布,但没有注册为mousedown
画布元素上的事件。
我可以做些什么来确保第一次点击被注册?
你是如何附加事件的?这应该“正常工作”,除非有情有可原。
这是一个例子:
根据您的代码的外观,为您的画布提供一个选项卡索引值也可能会有所帮助。
theCanvas.tabIndex = 0; // might fix your particular issue
我刚刚遇到了这个问题。我需要同时听左键和右键,并且使用的是mousedown
.
以防有人像我一样发现这个。我通过将事件附加到mouseup
而不是mousedown
.
这样,焦点发生在 onmousedown
和事件触发上mouseup
,这对我正在做的事情来说很好。