JavaScript Drag& Drop API:拖动了哪个元素?

时间:2016-05-08 08:12:51

标签: javascript drag-and-drop

我想我已经知道了答案,但无论如何我想要确认。

  1. 我有许多可拖动的元素,而不是所有相同的类型。
  2. 我有一个放置目标。
  3. 当我在目标上拖动一个元素时,我想知道哪个元素被放到它上面。
  4. 据我所知,目标元素没有得到那些信息,所以唯一的方法是在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这样的库)。

    由于

0 个答案:

没有答案