Dart, Polymer, Dartium.
在一个页面中,我有一些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>
确保core-a11y-keys
的target
属性实际上存在并针对div
,否则它将适用于包括input
在内的整个页面。关于如何做到这一点的更多细节,请参阅这里:https://groups.google.com/a/dartlang.org/forum/m/#!主题/web/k8Wzj6KCfgM
如果你的input
是div
的孩子,你的core-a11y-keys
是针对的,它会做你指示它在div
做的任何地方:拦截击键。在这种情况下,您需要在input
中处理onKeyPress
事件,如<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.