我试图禁用div中的所有点击事件。我禁用了整个div,但它对我来说不是解决方案,因为我需要继续工作的mouseEnter事件。
问题在于它是我在我的应用程序的不同部分使用的指令,所以这个div有不同的结构,有时按钮是直接的孩子"有时它处于第二级。
那是我的尝试,它有效,但我发现它"脏":
<div #mydirective>
<button (click)="function1()">button</button>
<div>
<a (click)="function2()">link</a>
</div>
</div>
//directive ts
var children = this.element.nativeElement.children;
for (let child of children) {
this.renderer.setAttribute(child, 'disabled', 'true'); //for button
this.renderer.addClass(child, 'disabled'); //for links
var grandchildren = child.children;
for (let grandchild of grandchildren) {
this.renderer.setAttribute(grandchild, 'disabled', 'true');
this.renderer.addClass(grandchild, 'disabled');
}
}
我确定它应该更容易,有没有办法找到我的div中的所有按钮和链接?
答案 0 :(得分:1)
如果要禁用所有鼠标点击..然后有条件地将css类添加到该div以禁用所有指针事件。
在html文件中。
<div class="your-class">
// buttons and content goes here.
</div>
在css / scss文件中。
.your-class {
pointer-events: none;
}