我有两个函数,第一个是myFunction()和myDiv()
<div (click)="myDiv()">
<button (click)="myFunction()"> Submit </button>
</div>
在AppComponent中,我有两个函数的定义:
myFunction()
{
console.log("I am in myFunction");
}
myDiv()
{
console.log("I am in myDiv");
}
输出结果为:
我在myFunction
我在myDiv
为什么myFunction在myDiv之前首先运行?是什么原因?
答案 0 :(得分:3)
那是因为click
事件正在冒泡
<html>(document)
/\
<div (click)="myDiv()"> ||
/\
<button (click)="myFunction()"> Submit </button> ||
</div>
另见
如果您想首先调用myDiv
处理程序,您应该在捕获阶段中捕获事件
el.addEventListener('click', myDiv, true);
\/
useCapture
AFAIK angular不支持useCapture
选项。这是 workaround