我正在尝试使用angular-ui ui-keypress按下向下键时调用一个函数。从我发现的向下键是代码40.但是我无法触发事件。
如果你看看这个触发ENTER键的函数的jsfiddle(尝试输入甚至13)。但如果你将其改为40则不起作用。 http://jsfiddle.net/jayrmotta/NbjZL/70/
<!DOCTYPE html>
<html ng-app="myModule" xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Main</title>
</head>
<body ng-controller="Ctrl">
<button ng-click="add()">Add</button>
<input type="text" ui-keypress="{40: 'add()'}" />
{{item}}
</body>
</html>
var myModule = angular.module('myModule', ['ui.directives']);
function Ctrl($scope) {
$scope.item = "";
$scope.add = function () {
$scope.item = "Item Added";
}
}
我有错误的代码还是可以告诉我什么是错的?
答案 0 :(得分:8)
JavaScript keypress
事件不会向上,向下,向左或向右触发。您想要使用keyup
或keydown
。在您的情况下,您需要:ui-keyup="{40: 'add()'}"
http://www.w3schools.com/jsref/event_onkeypress.asp
注意:并未针对所有浏览器中的所有键(例如ALT,CTRL,SHIFT,ESC)触发onkeypress事件。要仅检测用户是否按下了某个键,请使用onkeydown事件,因为它适用于所有键。