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>

最佳答案

确保实际上存在targetcore-a11y-keys属性并以div为目标,否则它将应用于包括input的整个页面。有关更多信息,请参见此处:https://groups.google.com/a/dartlang.org/forum/m/#!topic/web/k8Wzj6KCfgM

如果您的inputdiv所针对的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一样,您需要onKeyUponKeyDown

关于dart - 不能在输入中使用core-a11y键,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32997812/

10-09 22:40