想象一个复杂的 HTML 结构,你不知道事物的确切位置,因为有些元素会随着时间移动,有些元素会随着悬停而移动,等等。不管是什么原因,你只是不知道它们的位置/边距/填充。
我的问题是:如果我有一个容器(#my_element_container),包含在一些我没有那么多信息的包装器(#complex_wrapper)中,它包含随机数量的元素(#my_element_container li),我想要能够在容器上附加一个 touchstart 事件侦听器,并能够判断用户单击了哪个元素。
本示例的样式如下:
#complex_wrapper {
position: absolute;
width: 600px;
height: 600px;
margin-top: 50px; /* These two change randomly so I can't hardcode a -50! */
margin-left: 12px;
background-color: gray;
}
#my_element_container {
position: absolute;
top: 95px;
left: 31px;
}
#my_element_container li{
position: relative;
width: 480px;
height: 90px;
background-color: red;
border: 1px black solid;
}
有人在之前的帖子中暗示我必须设法减去容器的边距和填充,所以我会在元素的顶部得到一个 0 坐标,我可以据此计算。我理解这个逻辑,但我很难找到一种动态地使“减去值”的方法,无论其他边距是多少。
我做了一个 jsfiddle 来展示我的要求,我的目标是能够,无论我硬编码到#complex_wrapper 中,告诉哪个元素被点击:http: //jsfiddle.net/342jU/1/
我们的项目没有也不会使用 jquery(不确定原因,我只知道我们没有)。