You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何为div及其内部图片绑定不同点击事件并阻止事件冒泡

解决Div与内部图片点击事件冲突问题

你碰到的是事件冒泡的问题:点击图片时,事件会向上传递到父级div,导致div的show('1')也跟着触发。preventDefault()是用来阻止元素默认行为(比如a标签跳转)的,对事件冒泡没用;return false在非内联事件里能同时阻止默认和冒泡,但内联写法里得正确处理事件对象才行。

直接改图片的内联点击事件就行,给它加上阻止冒泡的代码:

<div class="col-md-12 m-1 info rounded bg-light hand" id="result1" onclick="show('1')">
Text <b>textssssssss</b><br/> Description <b>desc</b>
<img src="./img/icons/magnify.png" title="Details" style="width: 32px" onclick="event.stopPropagation(); window.open('details.php?id=1','_blank');"/>
</div>

要是需要兼容老版本浏览器,就把事件对象的获取方式改一下:

<img src="./img/icons/magnify.png" title="Details" style="width: 32px" onclick="(event || window.event).stopPropagation(); window.open('details.php?id=1','_blank');"/>

这样点击图片时,只会执行打开新窗口的操作,不会触发div的show('1')了。

内容的提问来源于stack exchange,提问作者www.friend0.in

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.15 12:05:33