相关疑难解决方法(0)

AngularJS - 同时进行多次按键

我有以下内容$broadcast来捕获Angular中的按键:

$document.bind('keypress', function(event) {
    var key = event.which;
    $rootScope.$broadcast('keypress', event);
    $rootScope.$broadcast('keypress:' + key, event);
});
Run Code Online (Sandbox Code Playgroud)

我听着 $on

但是,我想检测何时同时按下两个键,比如说enters同时按下(不是一个组合后跟另一个组合).

这样做的最佳方式是什么?

编辑

我在想的是:

var keys = [];
$document.bind('keydown', function(event) {
    keys[event.which] = true;
});
$document.bind('keyup', function(event) {
    delete keys[event.which];
});

$document.bind('keypress', function(event) {
    var key = event.which;
    var keysPressed = [];
    angular.forEach(keys, function(value, key) {
        keysPressed += 'keypress:' + key;
    });
    $rootScope.$broadcast('keypress', event);
    $rootScope.$broadcast(keysPressed, event);
});
Run Code Online (Sandbox Code Playgroud)

所以如果我有多个按键,那么我创建正确的$broadcast.然而,问题在于,订单现在很重要(例如,如果我按下a那么enter,那么$broadcastkeypress:58keypress:13 …

keypress angularjs

3
推荐指数
1
解决办法
5415
查看次数

标签 统计

angularjs ×1

keypress ×1