扫码关注官方订阅号
假设这样的文档结构,我在pParent设置了drop监听,但我希望当他drop在pSub1范围内的时候,我能通过event对象获取到pSub1,请问怎么解决这个问题,只考虑h5,谢谢!
欢迎选择我的课程,让我们一起见证您的进步~~
你在父元素 pParent 上绑定监听器,那么event.target 指向 pSub1 元素(当然确定是拖入该元素上)event.currentTarget 才会指向 pParent 父元素
pParent
event.target
pSub1
event.currentTarget
function drag(ev) { ev.dataTransfer.setData("Text",ev.target.id); } function drop(ev) { ev.preventDefault(); var data=ev.dataTransfer.getData("Text"); ev.target.appendChild(document.getElementById(data)); }
W3c的demo你看他的实现是在拖动开始的时候传入了ID到event中dataTransfer中
根据你的需求我在添加一个
<span style="font-family:Microsoft YaHei;font-size:10px;"><!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Insert title here</title> <style type="text/css"> .box1 { border: green 40px solid; width: 300px; height: 300px; margin: auto; } .box2 { border: yellow 40px solid; width: 220px; height: 220px; margin: auto; } span { position: relative; left: 50px; top: 50px; background-color: rgba(128, 128, 128, 0.22); } </style> <script type="text/javascript"> window.onload = function() { document.getElementById("body").addEventListener("click",eventHandler); document.getElementById("box1").addEventListener("click",eventHandler); document.getElementById("box2").addEventListener("click",eventHandler); document.getElementById("span").addEventListener("click",eventHandler); } function eventHandler(event) { console.log("时间:"+new Date(event.timeStamp)+" 产生事件的节点:" + event.target.id +" 当前节点:"+event.currentTarget.id); } </script> </head> <body id="body"> <p id="box1" class="box1"> <p id="box2" class="box2"> <span id="span">This is a span.</span> </p> </p> </body> </html></span>
你运行下这个事件冒泡的例子应该就可以理解了
微信扫码关注PHP中文网服务号
QQ扫码加入技术交流群
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
PHP学习
技术支持
返回顶部
你在父元素
pParent上绑定监听器,那么event.target指向pSub1元素(当然确定是拖入该元素上)event.currentTarget才会指向pParent父元素W3c的demo
你看他的实现是在拖动开始的时候传入了ID到event中dataTransfer中
根据你的需求我在添加一个
你运行下这个事件冒泡的例子应该就可以理解了