У тебя тема не соответствует телу вопроса.
let src = $('.scroll');
let currentSrc;
src.mousedown(function(e){
currentSrc = e.targetEvent;
});
src.mouseup(function(e){
if (e.targetEvent !== currentSrc) {
e.preventDefault ? e.preventDefault() : e.cancelBubble = true;
return false;
}
})
Если объекты, на которых возникли mouseDown и mouseUp отличаются, то нужно погасить событие mouseUp. Тогда не должен возникнуть click по ссылке. Также вообще-то следует предусмотреть выход курсора за пределы окна - в таком случае события mouseUp может не возникнуть и не выполнится проверка, останавливающая развитие события. Стоит довесить mouseout...
Кроме того, ЗАРУБИ на носу, иначе когда-нибудь потеряешь мозг - jQuery не устанавливает обработчик, а добавляет его в очередь. Поэтому конструкция, когда ты внутри mouseDown делаешь src.mouseMove(function (){}) приведет к тому, что у тебя по мере последующих mouseDown на элементе будет расти количество одинаковых обработчиков. Поверь, ничего хорошего это не сулит...
Кстати, я не уверен что mouseup стоило вешать на window в твоем случае. Уж скорее на body.