@Denis9999

Не нормальное поведение события mouseup?

Проблема в том что событие mouseup не срабатывает если закоментировать эту строку:
thumb.style.top = e.pageY + 'px';
Почему срабатывание события зависит от кода в другой функции, который события не касается?

Код вот такой:
function getCoords(elem) { 
  		var box = elem.getBoundingClientRect();
  		return {
    	        top: box.top + pageYOffset,
    	        left: box.left + pageXOffset
  		};
	}
  	var thumb = document.querySelector('.thumb');

  	thumb.onmousedown = function(e) {
  		var coords = getCoords(thumb);
  		thumb.style.position = 'absolute';
  		thumb.style.left = coords.left + 'px';
    	thumb.style.top = coords.top + 'px';

    	document.onmousemove = function(e) {
    		thumb.style.left = e.pageX + 'px';
    		thumb.style.top = e.pageY + 'px';
  		};

  		thumb.onmouseup = function() {
  			alert('mouseup сработал');
    		document.onmousemove = null;
    		thumb.onmouseup = null;
  		};
  	}
  • Вопрос задан
  • 164 просмотра
Решения вопроса 1
Потому что вы ловите событие на элементе, а он после того как вы убрали эту строку перестал двигаться вниз и ушел из под курсора. Попробуйте курсор держать над элементом и тогда будет вам событие.

P.S. код лучше отформатировать, добавить к вопросу ссылку на живой пример и тогда больше шансов, что вы получите хорошие отклики)
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы