function alertOuter() {
alert("outer alert")
}
function alertInner() {
alert("inner alert")
return
}Run Code Online (Sandbox Code Playgroud)
<div onclick="alertOuter()" style="padding:20px;background:red;">
<h1>Outer</h1>
<br/>
<button onclick="alertInner()">Inner</button>
</div>Run Code Online (Sandbox Code Playgroud)
我对onclick事件有两个函数调用。
我想alertOuter在单击按钮时阻止功能。但是,当我单击按钮时,它正在调用这两个函数。
alertOuter当单击按钮只想调用alertInner()函数时,我想阻止该函数
我怎样才能做到这一点?
使用 Javascript 正确附加事件侦听器,以便您可以看到事件参数,然后调用stopPropagation()该事件,这样它就不会冒泡到包含<div>:
document.querySelector('button').addEventListener('click', (e) => {
e.stopPropagation();
console.log('inner');
});
document.querySelector('div').addEventListener('click', () => {
console.log('outer');
});Run Code Online (Sandbox Code Playgroud)
<div style="padding:20px;background:red;">
<h1>Outer</h1>
<br/>
<button>Inner</button>
</div>Run Code Online (Sandbox Code Playgroud)
最好避免使用内联处理程序,它们具有令人困惑的行为,需要全局污染,并且几乎从不需要。
| 归档时间: |
|
| 查看次数: |
43 次 |
| 最近记录: |