Есть такой код для перетаскивание блока
'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)