Dart,聚合物0.5,Dartium。
在页面中,我有一些div
元素,里面有core-a11y-keys
,键是“左上右下”。它工作正常,按下按键后会发生一些 Action 。
我在页面上也有输入字段。问题是由于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>
最佳答案
确保实际上存在target
的core-a11y-keys
属性并以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();
}
我还没有尝试过,可能就像https://stackoverflow.com/a/13746419一样,您需要
onKeyUp
和onKeyDown
。关于dart - 不能在输入中使用core-a11y键,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32997812/