Dus*_*son 8 javascript jquery click touch event-propagation
可能重复:
如何获取位于点击点的所有元素的列表?
我知道我可以通过使用获得具有最高z-index的元素document.elementFromPoint(x,y).
问题是我需要获取包含触摸事件位置的每个div.
如何将触摸传播到下面的元素?
我看到一些hacky解决方案在重新生成事件时显示/隐藏元素,或者使用css指针事件样式,但是我不能使用它们,它们可能会导致闪烁......
下图说明了我需要做的事情:

如果紫色,绿色和蓝色框表示div元素,红点是触摸位置,我需要一个返回"div3,div2,div1"的函数.
Shm*_*dty 19
这段代码没有闪烁:
$("body").click(function(e){
var x = e.pageX, y = e.pageY;
var res = [];
var ele = document.elementFromPoint(x,y);
while(ele && ele.tagName != "BODY" && ele.tagName != "HTML"){
res.push(ele);
ele.style.display = "none";
ele = document.elementFromPoint(x,y);
}
for(var i = 0; i < res.length; i++){
res[i].style.display = "";
}
console.log(res);
});?
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4820 次 |
| 最近记录: |