我有一个网页应用程序用SVG绘制点,我想通过按 delete 键添加删除选定点的功能。我可以为整个文档捕获 delete keydown(或up)并阻止默认事件(Chrome的默认行为是返回页面),但这显然会阻止所有删除事件,因此 delete 按钮不再适用于表单。
有没有办法设置它,以便 delete 键在表单/输入中按预期工作,但是当应用程序中的任何其他位置它可以用作自定义删除功能?
答案 0 :(得分:2)
我想到的第一件事就是stopPropagation
和input
字段上的textarea
,然后preventDefault
不应在{{1}上触发}}
JQuery伪代码:
document
另一种可能性是检查文档关键事件的原始目标。
事件回调:
$('input, textarea').keypress(e, function(e){e.stopPropagation();});
$(document).keypress(e, function(e){if(delete) e.preventDefault();});
如果你使用jQuery,第一行应该是过时的,因为它为你规范了事件,你可以使用var originalElement = e.srcElement || e.originalTarget;
if(orignalElement.tagName === 'INPUT' or orignalElement.tagName === 'TEXTAREA'){ return; }
// else do your delete key stuff
来获取e.target