在dataTransfer.setData上设置多个数据

时间:2019-03-14 16:08:41

标签: javascript html razor razor-pages

是否可以使用dataTransfer设置多个?

HTML

<tr class="notfirst"
    draggable="true"
    ondragstart="drag(event, '@Model.getFormat(item)', '@Model.getColor(item)')"
    ondragover="allowDrop(event)"
>

JS

function drag(ev, format, color) {
    ev.dataTransfer.setData("text", format);
    ev.dataTransfer.setData("text", color); 
}

我可以正确地将formatcolor传递给我的JS函数,但是我不能将两者都添加到dataTransfer中,因为color取代了format。我也尝试传递一个对象,但是也没有用。

1 个答案:

答案 0 :(得分:0)

您可以将数据推送到JSON对象,然后使用JSON.stringify()将此对象转换为字符串。之后,您将能够将整个字符串传递给setData。

   let  obj = {prd_iId: 50 ,prd_sName: 'Ray Ban'};
   obj = {...obj, prd_sModel:'Aviator'};     
   e.dataTransfer.setData("text/plain", JSON.stringify(obj));

那会做你想要的。