在Angular中停止鼠标事件传播的最简单方法是什么?
我应该传递特殊的$event对象和调用stopPropagation()自己或有一些其他的方式。
例如,在Meteor中,我可以简单地从事件处理程序返回false。
在Angular中停止鼠标事件传播的最简单方法是什么?
我应该传递特殊的$event对象和调用stopPropagation()自己或有一些其他的方式。
例如,在Meteor中,我可以简单地从事件处理程序返回false。
当前回答
我使用
<... (click)="..;..; ..someOtherFunctions(mybesomevalue); $event.stopPropagation();" ...>...
简而言之,只需用';'分隔其他事物/函数调用,并添加$event.stopPropagation()
其他回答
这解决了我的问题,从防止一个事件被一个孩子触发:
doSmth () { // what ever } < div(点击)= " doSmth ()" > < div(点击)= " $ event.stopPropagation ()" > <组件> < /组件> < / div > < / div >
我不得不stopPropagation和preventDefault,以防止按钮展开上面的手风琴项。
所以…
@Component({
template: `
<button (click)="doSomething($event); false">Test</button>
`
})
export class MyComponent {
doSomething(e) {
e.stopPropagation();
// do other stuff...
}
}
在函数后添加false将停止事件传播
<a (click)="foo(); false">click with stop propagation</a>
我刚刚检查了一个Angular 6应用程序,event. stoppropagation()在一个事件处理程序上工作,甚至不需要传递$event
(click)="doSomething()" // does not require to pass $event
doSomething(){
// write any code here
event.stopPropagation();
}
在事件上调用stopPropagation来阻止传播:
(event)="doSomething($event); $event.stopPropagation()"
对于preventDefault只返回false
(event)="doSomething($event); false"
事件绑定允许执行按顺序执行的多条语句和表达式(由;比如*。ts文件。 如果是false,最后一个表达式的结果将导致preventDefault被调用。所以要小心表达式返回的内容(即使只有一个)