使用带输入的core-a11y-keys是不可能的

时间:2015-10-07 16:37:59

标签: dart polymer dart-polymer core-elements

Dart,Polymer 0.5,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>

1 个答案:

答案 0 :(得分:0)

确保target的{​​{1}}属性实际存在并定位到core-a11y-keys,否则它将适用于整个页面,包括div。有关如何执行此操作的详细信息,请参阅此处:https://groups.google.com/a/dartlang.org/forum/m/#!topic/web/k8Wzj6KCfgM

如果您的inputinput所针对的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();
}

我没有尝试过,可能需要onKeyUponKeyDown,而不是https://stackoverflow.com/a/13746419