Javascript Drag & Drop: можно ли работать? - PullRequest
1 голос
/ 06 июля 2011

Есть ли какое-нибудь рабочее решение для ondragleave?

.addEventListener('ondragleave',function(){
console.log('nothing');
});

Это не работает. Я что-то не так делаю?

Спасибо;)

Ответы [ 2 ]

1 голос
/ 12 июля 2013

Предыдущий ответ неверен, ondragleave и ondragend - это два разных события, и они запускаются по разным элементам.Brenjt, возможно, имел в виду, что он попытался выполнить событие ondragexit, которое и было вызвано ondragleave в Mozilla <3.5. </p>

ondragleave запускается, когда происходит перетаскивание элемента, который может получить событие drop.1004 * ondragend запускается на элементе, на котором запущен ondragstart.

См., Например: https://developer.mozilla.org/en-US/docs/DragDrop/Drag_Operations

Причина, по которой он не срабатывает, может быть

.addEventListener('ondragleave',function(){

которое, вероятно, должно быть

.addEventListener('dragleave',function(){

В документах, которые я прочитал, например, на http://www.quirksmode.org/js/events_advanced.html, событие указывается без "on" при использовании .addEventListener ().

PS.Как примечание стороны, Mozilla 22, похоже, также запускает событие ondragleave после некоторого тайм-аута, зависшего над сбрасываемым элементом.DS.

1 голос
/ 06 июля 2011

Попробуйте

.addEventListener ("dragend",function(){
    console.log('nothing');
});

РЕДАКТИРОВАТЬ: Это зависит от того, какой браузер вы используете. Информация взята с http://help.dottoro.com/ljsluknm.php. Различные браузеры используют разные имена событий.

var source = document.getElementById ("source");
var target = document.getElementById ("target");
            if (source.addEventListener) {  // all browsers except IE before version 9
                    // Firefox from version 3.5, Google Chrome, Safari, Internet Exlorer
                source.addEventListener ("dragstart", DumpInfo, false);
                    // Firefox before version 3.5
                source.addEventListener ("draggesture", DumpInfo, false);
                    // Firefox, Google Chrome, Safari, Internet Exlorer
                source.addEventListener ("drag", DumpInfo, false);
                    // Firefox, Google Chrome, Safari, Internet Exlorer
                source.addEventListener ("dragend", DumpInfo, false);

                    // Firefox, Google Chrome, Safari, Internet Exlorer
                target.addEventListener ("dragenter", DumpInfo, false);
                    // Firefox, Google Chrome, Safari, Internet Exlorer
                target.addEventListener ("dragover", DumpInfo, false);
                    // Firefox from version 3.5, Google Chrome, Safari, Internet Exlorer
                target.addEventListener ("dragleave", DumpInfo, false);
                    // Firefox
                target.addEventListener ("dragexit", DumpInfo, false);
                    // Firefox from version 3.5, Google Chrome, Safari, Internet Exlorer
                target.addEventListener ("drop", DumpInfo, false);
                    // Firefox before version 3.5
                target.addEventListener ("dragdrop", DumpInfo, false);
            }
            else {
                if (source.attachEvent) {   // IE before version 9
                    source.attachEvent ("ondragstart", DumpInfo);
                    source.attachEvent ("ondrag", DumpInfo);
                    source.attachEvent ("ondragend", DumpInfo);

                    target.attachEvent ("ondragenter", DumpInfo);
                    target.attachEvent ("ondragover", DumpInfo);
                    target.attachEvent ("ondragleave", DumpInfo);
                    target.attachEvent ("ondrop", DumpInfo);
                }
            }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...