我有一个包含 onClick() 的按钮。
<input id="btn1" type=button onClick="myFunc('arg1', 'arg2', 'arg3')">
还有一个函数:
<script type="text/javascript">
function myFunc(a1, a2, a3) {
//do stuff
}
</script>
我的按钮包含在一个 DIV 容器内,该容器有自己的 onClick() 事件。
我需要 DIV onClick() 来触发(正如它所做的那样),但当单击其中的按钮时则不需要。然后我只需要触发按钮的 onClick() 即可。
我之前已经通过使用 .bind() 将监听器事件绑定(bind)到按钮来完成此操作,该按钮会自动将 event
对象作为参数传递给监听器函数,然后使用 e.stopPropagation()。
但是,通过 HTML onClick() 调用的函数似乎没有将此事件传递给它们。
有没有办法在通过 HTML onClick() 而不是通过 .bind() 调用的函数中调用 stopProagation()?
同样,这里的最终目标是确保按钮的 onClick() 触发,但它包含的 DIV 的 onClick() 却不会。
最佳答案
尝试将事件
作为第一个参数传递:
function test (e) {
e.stopPropagation();
console.log('click button');
}
function testDiv (e) {
console.log('click div');
}
<div onClick="testDiv()">
<button onClick="test(event, 'a','b','c')">button</button>
</div>
关于javascript - 如何在通过 onClick() 调用的函数中 .stopPropagation(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36873358/