Как отловить событие onmouseup
Всем привет!
Мне нужно отследить последовательность действий мыши, которые были сделаны над элементом при его перемещении. Сценарий действий пользователя такой: нажали кнопку мыши над элементом – протащили его в сторону – отпустили. Пробую получить нужный результат вот с таким кодом: var myElement = document.getElementById("myElement"); myElement.onmousedown = function(event) { console.log("нажали"); myElement.onmousemove = function(event) { console.log("перемещаем"); }; myElement.onmouseup = function(event) { console.log("отпустили"); }; };Проблема в том, что событие «отпустили» не возникает. Подскажите, пожалуйста, что сделал неправильно и как сделать, чтобы отпускание мыши тоже отрабатывало? |
myElement.addEventListener('mousedown', function(event) { console.log("нажали"); myElement.addEventListener('mousemove', function(event) { console.log("перемещаем"); }); myElement.addEventListener('mouseup', function(event) { console.log("отпустили"); }); }); так попробуйте |
Цитата:
https://javascript.ru/ui/draganddrop |
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> <style> div{ display: block; position: absolute; } </style> </head> <body> <div>1ddddddddddddddddddd</div> <div>1ddddddddddddddddddd</div> <script> [].forEach.call(document.querySelectorAll('div'), function(el){ el.onmousedown = function(e) { console.log("нажали"); var a = [e.pageX - el.getBoundingClientRect().left, e.pageY - el.getBoundingClientRect().top]; document.onmousemove = e => { console.log("перемещаем"); el.style.cssText = 'left:'+(e.pageX-a[0])+'px; top:'+(e.pageY-a[1])+'px' }; el.onmouseup = function() { console.log("отпустили"); document.onmousemove = null; el.onmouseup = null; }; }; el.ondragstart = e => false; }); </script> </body> </html> |
Всем спасибо, дело было в отсутствии
document.ondragstart = function () { return false; }; |
Часовой пояс GMT +3, время: 02:01. |