@stockbrains

Что не так с кодом?

Есть такой код для перетаскивание блока
'use strict';


var setupDialogElement = document.querySelector('.setup');
var dialogHandler = setupDialogElement.querySelector('.upload');

dialogHandler.addEventListener('mousedown', function(evt) {
    evt.preventDefault();

    var startCoord = {
        x: evt.clientX,
        y: evt.clientY
    };
   

    var dragged = false;

    var onMouseMove = function(moveEvt) {
        moveEvt.preventDefault();
        dragged = true;

        
        var shift = {
            x: startCoord.x - moveEvt.clientX,
            y: startCoord.y - moveEvt.clientY
        };

        setupDialogElement.style.top = (setupDialogElement.offsetTop - shift.y) + 'px';
        setupDialogElement.style.left = (setupDialogElement.offsetLeft - shift.x) + 'px';
        
        var startCoord = {
            x: moveEvt.clientX,
            y: moveEvt.clientY
        };
      
    };

    var onMouseUp = function(upEvt) {
        upEvt.preventDefault();

        document.removeEventListener("mousemove", onMouseMove);
        document.removeEventListener('mouseup', onMouseUp);

        if(dragged) {
            var onClickPreventDefault = function(evt) {
                evt.preventDefault();
                dialogHandler.removeEventListener('click', onClickPreventDefault);
            };
            dialogHandler.addEventListener('click', onClickPreventDefault);
        }
    };

    document.addEventListener("mousemove", onMouseMove);
    document.addEventListener('mouseup', onMouseUp);
 
})


выдает следующую ошибку:
dand.js:24 Uncaught TypeError: Cannot read property 'x' of undefined
    at HTMLDocument.onMouseMove (dand.js:24)
  • Вопрос задан
  • 128 просмотров
Пригласить эксперта
Ответы на вопрос 1
Robur
@Robur
Знаю больше чем это необходимо
уберите 'var' в строчке `var startCoord = {` внутри функции onMouseMove
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы
23 нояб. 2024, в 01:31
1000 руб./за проект
23 нояб. 2024, в 00:16
2000 руб./за проект