Я столкнулся с той же проблемой. Даже после добавления e.preventDefault()
в обработчик mousedown он все еще не разрешен.
Наконец, я обнаружил, что если я отключаю следующие коды в моем обработчике mousemove, мой обработчик mouseup вызывается нормально.
mouseDragArea.css({
top: dragAreaPos.y + 'px',
left: dragAreaPos.x + 'px',
width: Math.abs(mouseCurPos.x - mouseClickPos.x) + 'px',
height: Math.abs( mouseCurPos.y - mouseClickPos.y ) + 'px'
});
mouseDragArea - это программно созданный элемент, имеющий пунктирную границу для отображения прямоугольной области, перетаскиваемой мышью:
mouseDragArea = $('<div id="mouse-drag-area"></div>');
Затем я понял, что этот элемент #mouse-drag-area
НАХОДИТСЯ за оригинальным элементом, который обрабатывает событие mouseup. Поэтому после добавления следующего объявления css к #mouse-drag-area
оно сортируется:
pointer-events:none;
Другими словами, суть в том, для какого элемента вы устанавливаете свой обработчик mouseup.