mousedown
, в нём ставите флаг = true.mousemove(over)
, в нём проверяется установлен ли флаг из п.1. Если флаг === true, делаем что нас интересует.mouseup
, в нём флаг устанавливается в false. У вас там какое-то безумие: вы на каждое событие mousemove добавляете ещё один обработчик.
addEventListener('click')
и чем он отличается от onclick
. Если структура организована правильно