【问题标题】:Select Item in Polymer 2 paper-dropdown-menu with TAB使用 TAB 在 Polymer 2 纸张下拉菜单中选择项目
【发布时间】:2017-03-15 07:59:01
【问题描述】:

我在 Polymer 2 中有一个纸质下拉菜单,类似于这个:

<paper-dropdown-menu label="Dinosaurs">
  <paper-listbox class="dropdown-content" selected="1">
    <paper-item>allosaurus</paper-item>
    <paper-item>brontosaurus</paper-item>
    <paper-item>carcharodontosaurus</paper-item>
    <paper-item>diplodocus</paper-item>
  </paper-listbox>
</paper-dropdown-menu>

我可以通过按键盘上的 ENTER 键来选择纸张列表框中的一项。有没有办法通过按 Tab 键来选择纸张项目

【问题讨论】:

    标签: html polymer


    【解决方案1】:

    您可以通过addOwnKeyBinding() 将键绑定添加到&lt;paper-listbox&gt;。指定的处理程序必须是 &lt;paper-listbox&gt; 的方法,因此您必须附加自己的方法。

    <paper-listbox id="listbox></paper-listbox>
    
    // script
    connectedCallback() {
      super.connectedCallback();
    
      // Attach our own handler for TAB-key
      this.$.listbox._onListTabKey = e => {
    
        // Cancel TAB key event
        e.preventDefault();
        e.stopPropagation();
        e.detail.keyboardEvent.preventDefault();
    
        // Select currently focused item
        const focusedIndex = this.$.listbox.indexOf(this.$.listbox.focusedItem);
        this.$.listbox.select(focusedIndex);
      };
    
      this.$.listbox.addOwnKeyBinding('tab', '_onListTabKey');
    }
    

    Polymer 1 demo

    Polymer 2 demo

    注意覆盖 TAB 可能是一个可访问性问题。

    【讨论】:

    • 谢谢托尼,这正是我正在寻找的。 :)
    • @TobiasB 没问题 :)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-08-23
    • 1970-01-01
    • 2016-09-15
    • 1970-01-01
    • 2015-08-28
    • 2016-01-21
    • 2014-12-17
    相关资源
    最近更新 更多