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中
根据你的需求我在添加一个
Insert title here.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);
}
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);
}
This is a span.
你运行下这个事件冒泡的例子应该就可以理解了