我想将ng-keypress
用于div
。但以下情况不起作用:
Html :
<div ng-keypress="myFunction($event)></div>.
Javascript :
$scope.myFunction = function(keyEvent) {
if (keyEvent.which === 13)
alert('I am an alert');
}
答案 0 :(得分:1)
尝试为该div添加tabindex =“1”。希望它能运作
答案 1 :(得分:0)
我知道它已经很长时间了,但我对div
的按键没有任何问题。只要div
具有焦点。它的tabindex="0"
属性允许它接收焦点,从而获得关键的新闻事件。
在此示例中,您必须首先单击(或选项卡到,如果需要){} {},然后才能收到密钥。您可以在代码中以编程方式轻松完成此操作。
示例代码
div
您没有获得<html>
<head>
<script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.6.9/angular.js"></script>
<style>
.box {
background-color: blue;
width: 500px;
height: 500px;
}
</style>
</head>
<body ng-app='app' ng-controller="ctrl">
<div class="box" ng-keypress="key($event)" tabindex="0"></div>
</body>
<script>
angular
.module('app', [])
.controller('ctrl', ['$scope', function($scope){
$scope.key = ($event) => {
console.log('got key ' + $event.code);
}
}]);
</script>
</html>
的所有密钥(例如箭头键),但如果您使用ng-keypress
,您也会获得这些密钥。