在我的结构应用程序中,我当前正在侦听某些按键(例如删除键),并删除任何选定的元素。我监听按键的方法是:
document.onkeydown = function(e) {
if (46 === e.keyCode) {
// 46 is Delete key
// do stuff to delete selected elements
}
不过,我遇到了一个问题:我在页面上还有其他元素,例如文本框,并且在文本框中键入内容时,我不希望删除键删除任何元素。
In 这个问题 https://stackoverflow.com/questions/15631991/how-to-register-onkeydown-event-for-html5-canvas,描述了一种将事件侦听器附加到 HTML5 画布的方法:
canvas.tabIndex = 1000;
允许您使用canvas.addEventListener
与键盘事件。
我可以在织物画布上使用类似的东西吗?
当我这样尝试时,
var CANVAS = new fabric.Canvas('elemID', {selection: false})
CANVAS.tabIndex = 1000;
CANVAS.addEventListener("keydown", myfunc, false);
我从 Chrome 中收到“未捕获的类型错误:未定义不是函数”。
这就是我最终所做的:我在 Fabric 使用的画布周围有一个包装器 div,并且我已将事件侦听器添加到该包装器中。
var canvasWrapper = document.getElementById('canvasWrap');
canvasWrapper.tabIndex = 1000;
canvasWrapper.addEventListener("keydown", myfunc, false);
This is working exactly like I want. The delete presses that happen inside a text box aren't picked up by the the listener.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)