在 'delete' 个关键事件上执行 'document.execCommand' - AngularJS
Performing 'document.execCommand' on 'delete' keyevents - AngularJS
我创建了 this demo plunkr 来重现这个问题。
我想在执行删除操作时应用 strikeThrough
命令。例如:
如果用户选择 "Text" 并按 delete
或 backspace
,它应该变成 Test。它不应该被删除。
有人可以帮我吗
$container.bind('keydown keyup', function (e) {
console.log(e)
if(e.keyCode===8 || e.keyCode===46){
$document[0].execCommand('strikeThrough', false); // line 1
e.preventDefault(); // line 2
}
});
我可以捕获如下事件,但 line 1
和 line 2
不能一起工作。那么如何停止 delete
事件并应用 execCommand
呢?
您确实绑定了 "twice"。
不是"don't work",是"work twice"。
修正代码如下:
$container.bind('keyup', function (e) {
console.log(e)
if(e.keyCode===8 || e.keyCode===46){
$document[0].execCommand('strikeThrough', false); // line 1
e.preventDefault(); // line 2
}
});
$container.bind('keydown', function (e) {
console.log(e)
if(e.keyCode===8 || e.keyCode===46){
e.preventDefault(); // line 2
}
});
我创建了 this demo plunkr 来重现这个问题。
我想在执行删除操作时应用 strikeThrough
命令。例如:
如果用户选择 "Text" 并按 delete
或 backspace
,它应该变成 Test。它不应该被删除。
有人可以帮我吗
$container.bind('keydown keyup', function (e) {
console.log(e)
if(e.keyCode===8 || e.keyCode===46){
$document[0].execCommand('strikeThrough', false); // line 1
e.preventDefault(); // line 2
}
});
我可以捕获如下事件,但 line 1
和 line 2
不能一起工作。那么如何停止 delete
事件并应用 execCommand
呢?
您确实绑定了 "twice"。
不是"don't work",是"work twice"。
修正代码如下:
$container.bind('keyup', function (e) {
console.log(e)
if(e.keyCode===8 || e.keyCode===46){
$document[0].execCommand('strikeThrough', false); // line 1
e.preventDefault(); // line 2
}
});
$container.bind('keydown', function (e) {
console.log(e)
if(e.keyCode===8 || e.keyCode===46){
e.preventDefault(); // line 2
}
});