我似乎找不到問題的答案或正確的角度方法來做到這一點。我知道這部分是主觀的。我有一個可點擊的元素。在該元素內,我還有另一個可單擊的元素: <li (click)="route($event, d, d.isdliked)" *ngFor="let d of dList; let i = index"> <div class="image-container" [ngStyle]="{ 'background-image': 'url(' + d.ImagePath + ')'}"> <div class="keep-container"> <div *ngIf="d.dliked" (click)="cantKeep()" class="liked"> <p>{{d.dLikes}}</p> </div> <div *ngIf="!d.dliked" (click)="keep(d, i)" class="not-liked"> <p>{{d.dLikes}}</p> </div> </div> </div> </li>因此,li 元素中的第一個單擊事件會將用戶路由到另一個頁面。另一個點擊事件不會路由到任何地方。但是,如果我單擊這兩個內部單擊事件,當我不想這樣做時,我就會被路由到其他頁面。所以我嘗試了這段代碼來檢查單擊的元素是否包含“keep-container”類: route(element: Element, d: D, dIsLiked: boolean): void { if (!element.classList.contains("keep-container")) { this.router.navigate(['/dinfo']); } }但這不起作用。當然,我嘗試使用element.target但沒有成功。我究竟做錯了什么?我會繼續尋找。主要目標:如果我單擊 p 標簽, <p>{{d.dLikes}}</p>我想檢查它是否在類內"keep-container"
1 回答

largeQ
TA貢獻2039條經驗 獲得超8個贊
$event.stopPropagation()就像平常在 javascript 中一樣使用
<div *ngIf="d.dliked" (click)="$event.stopPropagation();cantKeep()">...</div>
好吧,我喜歡在同一個 .html 中,您可以將 $event 傳遞給函數 cantKeep 并在 .ts 中進行 stopPropagation
<div *ngIf="d.dliked" (click)="cantKeep($event)">...</div>
cantKeep(event)
{
event.stopPropagation();
...rest of actions..
}
- 1 回答
- 0 關注
- 157 瀏覽
添加回答
舉報
0/150
提交
取消