Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/28.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angular 为什么(keydown.enter)和(keydown)不适用于列表?_Angular_Angular6_Angular8 - Fatal编程技术网

Angular 为什么(keydown.enter)和(keydown)不适用于列表?

Angular 为什么(keydown.enter)和(keydown)不适用于列表?,angular,angular6,angular8,Angular,Angular6,Angular8,我有一份要素清单: <div class="List"> <div class=" SearchListItem" [ngClass]="{ active: i == activeIndexResultItem }" *ngFor="let item of searchShortResultItems; let i = index" (mouseenter)="mouseEnterItem($event, i)" (keydown.ent

我有一份要素清单:

<div class="List">
<div class=" SearchListItem" [ngClass]="{ active: i == activeIndexResultItem }"
          *ngFor="let item of searchShortResultItems; let i = index"
          (mouseenter)="mouseEnterItem($event, i)" (keydown.enter)="searchByEnter($event, item)"
          (click)="selectSearchResult(item)"> {{ item.text }} 
        </div>
</div>
此外,我还尝试改为:

(keydown)="searchByEnter($event, item)"
同样的结果

我还特别关注:


键盘事件仅在焦点元素上调度。您可以添加
tabindex=“0”
以使DIV可聚焦


如果您的父元素是集中的,并且您只需从列表中跟踪当前元素-add(keydown.enter)添加到父元素,并将活动项传递给该处理程序。

检查此项:那么div如何获得焦点以触发关键事件?我应该在哪里将焦点设置为列表项或列表项?添加到列表元素?添加到
div class=“SearchListItem”
这是一个日常项目,我无法为循环中的所有IEM添加-1。您需要为所有项目添加0,这意味着它们可以按自然顺序聚焦。列表中的项目是
searchShortResultItems[activeIndexResultItem]
(keydown)="searchByEnter($event, item)"
 if (this.searchList) {
      setTimeout(() => this.searchList.nativeElement.focus(), 50);
}