Установить несколько данных на dataTransfer.setData - PullRequest
0 голосов
/ 14 марта 2019

Можно установить несколько с помощью 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); 
}

Я могу правильно передать format и color в свою функцию JS, но я не могу добавить оба к dataTransfer, поскольку color заменяет format. Я также пытался передать объект, но ничего не получилось.

1 Ответ

0 голосов
/ 14 мая 2019

Вы можете поместить ваши данные в объект 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));

Это будет делать то, что вы хотите.

...