我正在开发一个Angular应用程序,我似乎偶然发现了一个小bug/问题。 我的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。 我的猜测是,这可能与某种缓冲有关,或者按钮被按下并保持不变,但我找不到任何与此相关的东西。
很高兴得到任何帮助,谢谢:)
您应该尝试以下操作:
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的角度很可能改变了,如果ID保持不变,请查看浏览器开发工具。
相关问题