【问题标题】:focusout event does not trigger with tab button in angular component角度组件中的选项卡按钮不会触发 focusout 事件
【发布时间】:2020-11-16 11:32:31
【问题描述】:

在一个角度组件中,当特定的 div 聚焦时,我想用一个选择元素替换一个 div,一旦元素聚焦的 div 元素替换为选择元素。此代码在用户通过鼠标选择项目时有效,但在使用 tab 键时未触发焦点事件。

关于焦点方法我试图聚焦选择元素,但我不知道为什么按下标签按钮后没有触发焦点。

 onFocus(item){
    item.isActive = true;
    document.getElemntById(item.id).focus();
}  


    
    <div *ngFor="let item of array"
        <div class="cell">
           <select [attr.id]="item.id"
                 [hidden]="!item.isActive"
                 (focusout)="item.isActive = false"
           >
          </select>
           <div
              tabindex="0"
              [hidden]="!item.isActive"
              (focus)="onFocus(item)"
           >
           </div>
        </div>
    </div>

【问题讨论】:

    标签: javascript angularjs autofocus focusout


    【解决方案1】:

    我把 onFocus 方法改成这样:

    onFocus(item){
        item.isActive = true;
        setTimeout(function () { 
            document.getElemntById(item.id).focus(); 
        }, 0);
    }  
    

    现在可以了,但我认为这不是一个整洁的解决方案。

    【讨论】:

      猜你喜欢
      • 2015-07-28
      • 2019-06-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-10-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多