Angular / HTML清除输入事件

时间:2020-06-05 15:10:23

标签: javascript html angular typescript

我正在使用Angular应用程序,但似乎偶然发现了一个小错误/问题。我的html中有4个可点击区域,每次单击都调用该组件的.ts脚本的功能。到现在为止还挺好。我只想让每个区域都单击一次,但是这似乎不符合我的操作方式(而且我不太清楚为什么)。

clicked(event: Event): void {

// Get coordinates of clicked cell
var elementId: string = (event.target as Element).id;

if(this.answersGiven.includes(elementId)) {
  console.log("included");
  return;
}

this.answersGiven.push(elementId);

还有html

       <table>
        <tr>
        <td id="A1" (click)="clicked($event);">
       </tr>

因此,在第一次单击后,答案应被推入工作正常的数组中。但是,在同一单元格上第二次单击后,它并没有进入if条件。当第三次单击同一单元格时,它可以工作。当我记录事件时,第二次我仅获得“”而不是元素ID。我的猜测是,这可能与某种缓冲区有关,或者该按钮被按下并保持按下状态,但是我找不到与之相关的任何东西。

很高兴提供任何帮助,谢谢:)

1 个答案:

答案 0 :(得分:0)

您应该尝试以下操作:

HTML:

<table>
<tr>
<td (click)="clicked($event, 'A1');">
</tr>

TS:

clicked(event: Event, cod: string): void {

// Get coordinates of clicked cell
var elementId: string = (event.target as Element).id;

if(this.answersGiven.includes(cod)) {
  console.log("included");
  return;
}

this.answersGiven.push(cod);

构建HTML的Angular方法可能已经更改了<td id="A1",如果ID保持不变,请使用浏览器开发者工具。