javascript – Angular Catch全局按键

前端之家收集整理的这篇文章主要介绍了javascript – Angular Catch全局按键前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
这个问题有很多答案,但我无法弄清楚如何解决这两个问题.经过研究我构建了非常简单的指令.
.directive('keypressEvents',function ($document) {
    return {
        restrict: 'A',link: function () {
            $document.bind('keypress',function (e) {
                alert(e.keyCode);
            });
        }
    }
});

第一个问题更像是一个问题,如果我使它成为angular.service(‘myService’,myServiceFunction);,它会全局工作吗?第二个是一些关键不起作用,如ESC,箭头ctrl等我正在研究这个CODEPEN

解决方法

如果它是真正的全局处理程序,您可以将它绑定到$document.您可以在运行阶段添加它.在那里,您将能够注入实现处理逻辑所需的其他依赖项.你可以在一些服务或指令中添加它,如果你认为它们属于更多,你不需要关心在哪里,因为仅仅通过将它绑定到$document将使它成为全局.

否则,您可以创建类似于您的指令并将其绑定到元素.这使您可以选择添加指令的元素,如果它是全局的,那么它就足以将它添加到正文中,如果没有,那么您可以选择容器元素.

关于第二个问题,Esc键上的事件未被触发,因为Esc是键而不是字符.因此,您需要使用keydown或keyup事件来代替keypress.

Here是具有keyup事件的代码的工作示例.

$document.bind('keyup',function (e) {
    alert(e.keyCode);
});

我希望这个答案会对你有所帮助.

原文链接:https://www.f2er.com/js/159022.html

猜你在找的JavaScript相关文章