Как отловить событие 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, время: 11:06. |