Перетащите код, который работает на FireFox, но не IE - PullRequest
1 голос
/ 13 февраля 2012

У меня есть следующий код перетаскивания. Он отлично работает в Firefox, но не работает в IE.

//This function starts the event
function dragStart(ev) {
    ev.dataTransfer.effectAllowed= 'move'; //Makes the element movable
    ev.dataTransfer.setData("Image", ev.target.getAttribute('id')); // Grabs the element by its id
    return true;
}

//Prevents default but does not turn it off
function dragEnter(ev) {
    ev.preventDefault();
    return true;
}

//Turns off the dragover event and prevents default behavior
function dragOver(ev) {
    return false;
}

//This function performs the actual drop
function dragDrop(ev) {
    var oldImgId = ev.dataTransfer.getData("Image"); //The dragged element’s id is set to a variable

    ev.preventDefault();
    moveImg(oldImgId);
}

Я получил эти ошибки от IE при попытке перетащить изображение:

1)

'target' is null or not an object line 71
line 71 refers to: ev.dataTransfer.setData("Image", ev.target.getAttribute('id')); // Grabs the element by its id

2)

Object doesn't support this property or method line 77
line 77 refers to: ev.preventDefault();

Ответы [ 2 ]

1 голос
/ 13 февраля 2012

IE поддерживает только текст или URL как данные, поэтому «изображение» не будет работать.Попробуйте

ev.dataTransfer.setData("Text", ev.target.getAttribute('id'));

А вот документация: http://msdn.microsoft.com/en-us/library/ms536744(v=vs.85).aspx

0 голосов
/ 13 февраля 2012

Возможно, вы захотите использовать jQuery UI drag & drop, так как он предназначен для работы со всеми современными браузерами.http://jqueryui.com/demos/droppable/

http://jqueryui.com/demos/draggable

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...