我需要它以便使可点击的只是复选框标签的一部分(“隐私权政策”)。这是代码段:
<div>
<mat-checkbox required formControlName="privacyCheck" [checked]="false">
<b style="color: crimson">*</b>Accetto la
<i style="color: #770E0E" (click)="printDebug()">privacy policy</i>
e i termini di condizione dell'utilizzo del servizio.
</mat-checkbox>
</div>
此刻,如果我单击斜体文本(“隐私策略”),则会得到printDebug,但当然复选框将设置为“ checked”。
我尝试了几种解决方案使用CSS属性pointer-events: none !important;
上.mat-checkbox-layout .mat-checkbox-label span
,.mat-checkbox-layout .mat-checkbox-label
等。
好老式的stopPropagation()
怎么样?
我的回答太快了
您需要这样做preventDefault()
,因为的内容mat-checkbox
将放置在中,<label>
并且如果您单击附加的标签,这是默认的浏览器行为以选中一个复选框。
<i style="color: #770E0E" (click)="printDebug($event)">privacy policy</i>
printDebug(event: MouseEvent) {
event.preventDefault();
// ...
}
如果您使用材料的波纹效果,则仍会触发该效果。如果您不希望这样做,则必须.stopPropagation()
在鼠标按下时执行以下操作:
<i style="color: #770E0E" (mousedown)="$event.stopPropagation()"
(click)="printDebug($event)">privacy policy</i>
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句