我认为这不可能发生。有一个众所周知的原因,我不知道,或者它是Chrome的错误?当设备模式打开时,它会发生在Chrome DevTools中。重现的步骤:
如果该演示不可用,则以下是完整代码(不作为代码段):
<!DOCTYPE html>
<html>
<head>
<title>Demo</title>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<style>
#parent {
background: yellow;
height: 200px;
overflow: auto
}
#child {
background: red;
height: 250px;
}
</style>
</head>
<body>
<div id="parent">
<div id="child"></div>
</div>
<script>
document.querySelector('#parent').addEventListener('click', function(event) {
alert(event.target.id);
});
</script>
</body>
</html>
答案 0 :(得分:1)
这取决于您要为事件触发的元素。
您可以尝试切换到边距而不是填充,以便元素之间存在边距而不是子元素的填充。
您还可以尝试查看event.currentTarget,看看您是否打算捕获它。
这个其他StackOverflow question可能会有所帮助,因为它包含一个JSFiddle示例。
答案 1 :(得分:1)
因为有一个隐藏的滚动条,它属于父元素。