亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

檢查傳遞的元素是否被 Angular 8 類封裝

檢查傳遞的元素是否被 Angular 8 類封裝

慕標5832272 2023-11-06 15:16:35
我似乎找不到問題的答案或正確的角度方法來做到這一點。我知道這部分是主觀的。我有一個可點擊的元素。在該元素內,我還有另一個可單擊的元素:    <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..

}


查看完整回答
反對 回復 2023-11-06
  • 1 回答
  • 0 關注
  • 157 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號