好的,以下是使用Angular和TypeScript实现点击保存按钮后禁用整个页面的鼠标点击事件的代码示例:
HTML代码:
<button (click)="save()">保存</button> <div class="mask" *ngIf="isSaving"></div>
讯享网
CSS代码:
讯享网.mask { position: fixed; top: 0; left: 0; width: 100%; height: 100%; background-color: rgba(0, 0, 0, 0.5); z-index: 9999; }
TypeScript代码:
import { Component, HostListener } from '@angular/core'; @Component({ selector: 'app-root', template: ` <button (click)="save()">保存</button> <div class="mask" *ngIf="isSaving"></div> `, styles: [` .mask { position: fixed; top: 0; left: 0; width: 100%; height: 100%; background-color: rgba(0, 0, 0, 0.5); z-index: 9999; } `] }) export class AppComponent { isSaving = false; click<em>ab</em>leElements: NodeListOf<HTMLElement>; constructor() { this.click<em>ab</em>leElements = document.querySelectorAll('button, a, input[type="button"], input[type="submit"]'); } @HostListener('document:click', ['$event']) onClick(event: MouseEvent) { if (this.isSaving) { event.preventDefault(); event.stopPropagation(); } } save() { // <em>禁用</em>所有可<em>点击</em>元素 for (let i = 0; i < this.click<em>ab</em>leElements.length; i++) { this.click<em>ab</em>leElements[i].<em>dis</em><em>ab</em><em>led</em> = true; } // 显示遮罩层 this.isSaving = true; } // 恢复页面状态 restorePage() { for (let i = 0; i < this.click<em>ab</em>leElements.length; i++) { this.click<em>ab</em>leElements[i].<em>dis</em><em>ab</em><em>led</em> = false; } this.isSaving = false; } }
在这个示例中,我们首先在组件的构造函数中获取了页面上所有可点击的元素,然后在 save() 方法中遍历所有可点击的元素,将它们的 <em>dis</em><em>ab</em><em>led</em> 属性设置为 true,并设置 isSaving 属性为 true 来显示遮罩层。为了防止用户通过点击页面其他地方来触发相关事件,我们还使用了一个 HostListener 来捕获整个文档的点击事件,并在 onClick() 方法中阻止它们的传播。当保存完成或者发生错误时,我们调用 restorePage() 方法来恢复页面状态。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/158308.html