javascript - Angular / HTML 清除输入事件
问题描述
我正在开发一个 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。我的猜测是,这可能与某种缓冲区有关,或者按钮被按下并保持向下,但我找不到与此相关的任何东西。
很高兴有任何帮助,谢谢:)
解决方案
你应该试试这个:
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);
如果 ID 保持不变,Angular 构建 HTML 的方式可能已经改变了您的<td id="A1"
,请检查您的浏览器开发人员工具。
推荐阅读
- dataframe - 使用 StringType 获取所有列的名称
- discord.js - 在 discord.js v12 中录制语音频道中的所有用户
- python - 是否有创建 3D 对象/椭圆体的功能,其颜色透明度会根据中心的半径而变化(使用 python/matplotlib)?
- python-3.x - 如何将 MinMaxScaler feature_range 以相反的方式从正到负
- python - 为什么我们将 Mnist 训练图像重塑为 (60000,28,28,1) 而不是像这样直接使用 (60,28,28)?
- javascript - 未捕获的 RangeError:jquery 超出了最大调用堆栈大小
- r - R从Zip文件中的文件模式创建DataFrame
- r - 如何以递归方式获取 data.tree 对象的后代提示名称列表?
- logstash - ELK - Logstash 排除主机
- swift - 使用 .tag 快速更改 @IBoutlet 集合图像而不是图像