2015-10-07 3 views
1

Dart, Polymer 0.5, Dartium.Невозможно использовать сердечники-a11y-ключи с входами

На странице у меня есть элемент div с core-a11y-keys внутри, клавиши «вверх по левому краю». Он отлично работает, некоторые действия происходят после нажатия клавиши.

Также у меня есть поле ввода на странице. И проблема в том, что я не могу использовать клавиши со стрелками из-за core-a11y-keys.

Вопрос: как избежать разрушения?

HTML:

<body> 
    <div id="widgetContainer"> 
     <core-a11y-keys target="{{body}}" keys="up down left right" 
         on-keys-pressed="{{widgetContainer_on_move_keys}}"> 
     </core-a11y-keys> 
    </div> 
    <input id="txtInput"> 
</body> 
+0

Я не понимаю вопроса. Можете ли вы предоставить код, который позволяет воспроизвести проблему? –

ответ

0

Убедитесь, что атрибут core-a11y-keystarget фактически присутствует и ориентации на div, в противном случае она будет применяться ко всей странице, включая вашего input. Смотрите здесь более подробно о том, как сделать это: https://groups.google.com/a/dartlang.org/forum/m/#!topic/web/k8Wzj6KCfgM

Если ваш input был потомком div, что ваш core-a11y-keys был таргетирования, он будет делать то, что вы поручили это делать где-нибудь в том, что div: перехватывающих нажатия клавиш. В этом случае вам нужно будет обрабатывать onKeyPress событие в input как <input on-keypress="{{handleInputKeyStrokes}}">:

handleInputKeyStrokes(Event e) { 
    // You'll need one or both of these; not sure which. 
    e.preventDefault(); 
    e.stopPropagation(); 
} 

Я не пробовал это, и это может быть то, что вам нужно onKeyUp и onKeyDown вместо этого, как и в https://stackoverflow.com/a/13746419.

+0

Извините за ввод в заблуждение, вход не находится в div с 'core-a11y-keys'. Мне не нужны события захвата на 'input', мне просто нужен ввод для работы. В моем случае невозможно использовать в нем клавиши со стрелками, просто не работает. – kelegorm

+0

Это решение не работает для моей проблемы. Я не могу поймать события на моем целевом div, потому что нет элемента с настраиваемым интерфейсом. Я могу поймать события только на теле. – kelegorm

+0

Ваш код в вашем вопросе не показывает атрибут 'target'. См. Мой ответ еще раз, первое предложение. Включили ли вы цель? –