Javascript 表演';document.execCommand';在';删除';keyevents-AngularJS

Javascript 表演';document.execCommand';在';删除';keyevents-AngularJS,javascript,angularjs,keyevent,Javascript,Angularjs,Keyevent,我已经创建了一个复制问题 每当执行删除操作时,我想应用删除命令。例如: 如果用户选择“文本”并按delete或backspace,则它应成为测试。它不应该被删除。 有人能帮我吗 $container.bind('keydown keyup', function (e) { console.log(e) if(e.keyCode===8 || e.keyCode===46){ $document[0].execCommand('strikeThrough', fal

我已经创建了一个复制问题

每当执行删除操作时,我想应用删除命令。例如:

如果用户选择“文本”并按
delete
backspace
,则它应成为测试。它不应该被删除。 有人能帮我吗

$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
    }
});
我可以按如下方式捕获事件,但是
第1行
第2行
不能一起工作。那么,如何停止
delete
事件并应用
execCommand

您确实绑定了“两次”

这不是“不工作”,而是“工作两次”

修复代码如下所示:

$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
    }
});
你确实绑定了“两次”

这不是“不工作”,而是“工作两次”

修复代码如下所示:

$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
    }
});