我想我已经知道了答案,但无论如何我想要确认。
据我所知,目标元素没有得到那些信息,所以唯一的方法是在dragstart
事件中设置某种全局(或闭包)变量,然后使用它变量在另一端:
var current=null;
function dragstart(e) {
e.dataTransfer.effectAllowed='all';
e.dataTransfer.setData('text',this.innerHTML);
current=this;
e.stopPropagation();
}
另一种可能性是将一些任意数据设置为,例如,元素的id:
function dragstart(e) {
e.dataTransfer.effectAllowed='all';
e.dataTransfer.setData('text',this.getAttribute('id'));
current=this;
e.stopPropagation();
}
但这太过间接,而且是命名事物的负担。
这是真的如此,还是有一种方法可以在没有这一切的情况下识别元素?
我需要一个纯JavaScript的答案(没有像jQuery这样的库)。
由于