javascript - 并非所有子元素都会触发 Javascript 中的父元素点击处理程序(不是 preventDefault 问题)
问题描述
我有父 div - .parent
- 高度为 300 像素,宽度为 200 像素(没关系)。
我在 div 中有一个.child1
, .child2
,.child3
元素.parent
,每个元素都有内容和高度/宽度(这只是为了简单起见,每个子元素中有更多的嵌套)。所有 3 个子元素一起占据整个父容器的高度。(例如,每个孩子都有 100px 的高度)。
我在.parent
div 上有一个点击监听器:
$('.parent').click(function (){
console.log("Parent div clicked");
});
我注意到.parent
只有当我点击.child3
元素时才会触发我的点击处理程序。当我点击child1
或child2
- 事件不会被触发。
父单击处理程序仅在单击时起作用而在单击时.child3
不起作用的可能原因是什么?.child1
.child2
我不能分享这个问题的整个 javascript/css,因为每个子元素和父元素都有很多相关联。我只是想得到一个提示我应该去哪里看?
我最初的想法是有一些与 ,preventDefault/stopPropagation
相关联.child1
,.child2
这会阻止在父元素上触发点击,但是,我没有找到 preventDefault
与 .child1
or相关联的任何内容.child2
。另外,也查pointer-events
了。
还有什么可以影响它?Z指数?立场:绝对?
更新:
我还在文档上添加了单击处理程序,以查看单击.child1
或.child2
。但是,当我单击.child1
或.child2
。仅当我单击时才会触发.child3
(与 for 相同.parent
)。
$(document).click(function(event) {
console.log("Document click: " + event);
});
解决方案
推荐阅读
- apache - Apache:基于反向 DNS 表示法在虚拟主机部分内动态设置 Documentroot
- c# - 如何将控制器重定向到 ASP.NET Core 中的剃须刀页面
- thread-sanitizer - 当访问在 Mutex 下时,ThreadSanitizer 检测到竞态
- azure-data-factory - 如何使用 Azure 数据流将 2 个相同的行合并为只有一列差异的单行
- dart - 使用 List 时出现类型错误
变量作为 List 的参数 方法参数 - powerbi - Power BI:运行总计在表格中显示正常,但未在折线图中显示
- javascript - 更改每个值的 highchart 区域图颜色
- gatsby - Gatsby 部署在 Github 页面上缺少文件,但本地看起来不错
- database - 如何设置临时密码访问资源?
- flutter - 使用音频查询制作颤动的音乐应用程序,列表视图未显示