Я использую перетаскивание. Есть один элемент, который я могу сбросить на две разные цели. Для простоты кода я подумал, что было бы лучше иметь только одну функцию капли, внутри которой я смотрю, где элемент был сброшен. Тем не менее, я новичок в Javascript DOM-манипуляциях и не знаю, как этого добиться.Перетаскивание: получить целевые атрибуты (ID, внутренний HTML)
function drag(ev) {
ev.dataTransfer.setData("text", ev.target.innerHTML);
var data = ev.dataTransfer.getData("text");
}
function drop(ev) {
ev.preventDefault();
var username = ev.dataTransfer.getData("text");
var type = ev.target.innerHTML; //<====== ?? what's the proper way to do this?
alert("Adding " + username +" to chat. Type: "+ type);
socket.emit('add to convo',username);
}
Вот HTML:
<div id = "dragboxes">
<div id="samechatbox" ondrop="drop(event)" ondragover="allowDrop(event)">
<p> Add to <b>This</b> Chat </p>
</div>
<div id="newchatbox" ondrop="drop(event)" ondragover="allowDrop(event)">
<p> Add to <b>New</b> Chat </p>
</div>
</div>
Так внутри функции перетаскивания, я хотел бы иметь возможность получить целевые идентификаторы, либо «samechatbox» или «newchatbox».
Легко решить. Виноват. Просто добавлен второй параметр в функцию, которая становится: drop (ev, type) ... По-моему, это трудно понять иногда. Но если у вас есть более хороший способ сделать это, просто используя target.something, я все равно заинтересован :) – bsuire