Я имею следующую директиву:Угловая директива: связать KeyDown якорь элемент
.directive('hasFocus',function(){
return{
restrict: 'A',
link : function(scope,element,attrs){
element.on('keydown',function(e){
switch(e.which){
case 38 :
e.preventDefault();
selectNextButton($(this),true);
break;
case 40 :
e.preventDefault();
selectNextButton($(this));
break;
}
});
}
}
});
Это прекрасно работает, когда я прикрепить его к кнопке, но не работает, когда я прилагаю к якорю.
<button id="mybutton" has-focus>the button</button>
<a id="mybutton" data-ng-click="doSomething()" has-focus>the anchor</a>
Я хочу, чтобы иметь возможность захватить e.which, когда пользователь осуществляет навигацию с помощью кнопки со стрелками.
Невозможно привязать событие keydown к якорю?
https://api.jquery.com/keydown/ утверждает, что она может:.
"KeyDown событие посылается к элементу, когда пользователь сначала нажимает клавишу на клавиатуре Он может быть прикреплен к любому элементу, но событие только отправляется элементу с фокусом. "