如何通过 * 按下 * control key (CTRL)
并 * 单击 * 元素(例如从5中选择2和4)以随机顺序选择 * 多个 * 数字元素并将它们存储到数组中?经过多次尝试,我无法将单击事件与@Hostlistener
组合。
<div class="nums">
<div *ngFor="let tempNum of [1, 2, 3, 4, 5]">
<span class="num" (click)="onNumClick(tempNum)">{{ tempNum }}</div>
</div>
</div>
@Hostlistener('window.keydown.control', ['$event'])
onKeyDown(event: KeyboardEvent) {
console.log('Control key clicked');
}
onNumClick(num: number) {
this.selectedNums.push(num);
}
1条答案
按热度按时间enxuqcxy1#
一个非常简单的解决方案应该是这样的--只需要检查click事件是否设置了
ctrlKey
标志,并相应地修改行为。注意,我使用
Set
而不是数组,以方便地避免重复。请记住,这显然不能在移动的设备上使用,对于移动用户,你必须提供一个替代方案,如复选框或长按。