拖拽 - html5的drop事件,如何获取target?
天蓬老师
天蓬老师 2017-04-17 11:54:45
[HTML讨论组]
<p id="pParent">
    <p id="pSub1"></p>
    <p id="pSub2"></p>
    <p id="pSub3"></p>
    <p id="pSub4"></p>
</p>

假设这样的文档结构,我在pParent设置了drop监听,但我希望当他drop在pSub1范围内的时候,我能通过event对象获取到pSub1,请问怎么解决这个问题,只考虑h5,谢谢!

天蓬老师
天蓬老师

欢迎选择我的课程,让我们一起见证您的进步~~

全部回复(2)
PHPz

你在父元素 pParent 上绑定监听器,那么
event.target 指向 pSub1 元素(当然确定是拖入该元素上)
event.currentTarget 才会指向 pParent 父元素

阿神
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 +"&nbsp; 当前节点:"+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>

你运行下这个事件冒泡的例子应该就可以理解了

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号