• 1000 Свойства .draggable ()
Я могу выполнять перетаскивание, и изображение, показываемое при перетаскивании, является текстом, поэтому я хочу изменить его и показать собственное изображение. Идентификатор каждого LI содержит источник изображения (путь + имя файла)
Я пытаюсь использовать SetDragImage, но каждый раз получаю сообщение об ошибке «Uncaught TypeError: Cannot read property 'SetDragImage' of undefined
Я также пытался сделать это без "originalEvent", и у меня такая же ошибка
Может ли кто-нибудь помочь мне найти мою ошибку?
Пожалуйста, найдите ниже мой код
Заранее спасибо
Удачного дня
HTML раздел:
<div class="toolGridContainer">
<div class="containerTitle">Container1</div>
<div class="containerSeparator">
<hr>
</div>
<li id="./images/Image1.svg" class="toolItem ui-draggable ui-draggable-handle">Item 1</li>
<li id="./images/Image2.svg" class="toolItem ui-draggable ui-draggable-handle">Item 2</li>
<li id="./images/Image3.svg" class="toolItem ui-draggable ui-draggable-handle">Item 3</li>
<li id="./images/Image4.svg" class="toolItem ui-draggable ui-draggable-handle">Item 4</li></div>
Javascript:
$(document).on('dragstart', '.toolItem', function(evt){
var imgObj = document.createElement('img');
imgObj.src = $(this).prop('id');
evt.originalEvent.dataTransfer.setDragImage(imgObj, 0, 0);
});
Редактировать 1: Вот JSFiddle , который я сделал, чтобы воспроизвести мою проблему
Редактировать 2: Я сделал тестовый div, вручную сделал его перетаскиваемым и тестовую функцию, чтобы увидеть, доступен ли setDragImage в других случаях, и эта функция работает нормально, почему?
HTML:
<li id="testItem" draggable="true" class="toolItem">TestItem</li>
Javascript:
var testFunction = function(evt){
console.log('testFunction running');
var dataTransfer = evt.dataTransfer;
var imgObj = document.createElement('img');
imgObj.src = './image.svg';
dataTransfer.setDragImage(imgObj, 0, 0);
}
var testElement = document.getElementById('testItem');
testElement.ondragstart = testFunction;