更改拖放的拖动元素

时间:2019-04-16 10:48:29

标签: javascript reactjs

我有一个图库图库,可以将其拖到一个内容可编辑的div中。但是,当插入图像时,我不希望将图像添加到光标位置,而是希望添加锚链接。

这似乎很简单:

onDragStart = (event, obj) => {
  let url = AnotherLib.getURL(obj);

  event.dataTransfer.setData('text/html', `<a href="${url}">${obj.text}</a>`);
};

插入的元素将是一个锚链接。但是,我还需要一个调用组件方法的onClick侦听器。第一个想法是只传递onClickonclick,但这似乎在插入元素时被删除了。

接下来我注意到https://developer.mozilla.org/en-US/docs/Web/API/HTML_Drag_and_Drop_API/Recommended_drag_types#node

您可以将.setData()的类型设置为application/x-moz-node,因此我将方法更改为:

onDragStart = (event, obj) => {
  let url = AnotherLib.getURL(obj);
  let el = document.createElement('a');
  el.setAttribute('href', url);
  el.innerText = obj.text;    
  //el.addEventListener('click', function(event) {...});

  event.dataTransfer.setData('application/x-moz-node', el);
};  

但是现在,我没有插入锚链接,而是要拖动图像元素。

0 个答案:

没有答案