Если ваша проблема в этой строке:
var dropElement = ev.target.id;
, вы можете проверить, является ли цель события элементом img.В этом случае вы можете получить ближайшего предка drophere:
function allowDrop(ev) {
ev.preventDefault();
}
function drag(ev){
ev.dataTransfer.setData("text",ev.target.id);
}
function drop(ev) {
ev.preventDefault();
var data = ev.dataTransfer.getData("text");
var shortData = data.replace('draghere_','');
var dropElement = (ev.target.tagName == 'IMG') ? ev.target.closest('.drophere') : ev.target;
if(dropElement.id.indexOf(shortData) !== -1){
dropElement.appendChild(document.getElementById(data));
document.getElementById(dropElement.id).remove();
}
}
<div class="drophere" id="drophere_215" ondrop="drop(event)" ondragover="allowDrop(event)">
<img src="https://dummyimage.com/100x100/000/fff&text=1" />
</div>
<span class="draghere" id="draghere_215" draggable="true" ondragstart="drag(event)">
<span>Georgia</span>
</span>