thumb.onmousedown = function(e) {
...
document.onmouseup = function() {
document.onmousemove = document.onmouseup = null;
};
...
}
примерно так выглядит обработчик для Drag'n'Drop'а. Он работает. Но мне не ясно то как работает присваивание "document.onmouseup = null", в функции обработчике на этом самом document.onmouseup ... По идее это должна быть одноразовая функция - присвоили null, он должен перечеркнуть саму эту функцию. Но так не происходит. Функция продолжает работать. Почему?
thumb.onmousedown, document.onmouseup события вешаются на разные елементы, примерная логика такова :
зажали лкм на елементе, добавили документу ивентхэндлер для отслеживания координат document.onmousemove, ну чтобы знать куда мы передвигаем текущий елемент.
отпустили лкм - значит процесс Drag'n'Drop'а завершен, елемент оказывается на том месте, где отпустили лкм, а ивентхэндлеры на документе уже не нужны, поетому их удаляем (document.onmousemove = document.onmouseup = null;).
При зажатии лкм уже на следующем елементе просто повторяем вышеописаные действия.
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости