Size: a a a

JavaScript Noobs — сообщество новичков

2020 February 22

AE

Alexey Ermakov in JavaScript Noobs — сообщество новичков
Максим
А как его на удаленном элементе проверить?

modal.remove();
   console.log(modal);

Возвращает элемент в консоль, а getEventListeners(modal) - нет (т.к. его уже нет в html)

Просто я не знаю удаляется ли событие на элементе с удалением самого элемента т.к. при том же удалении элемента и возврата его в консоль - он возвращается
у тебя переменная modal ссылается на элемент, он не будет удаляться GCом
источник

u

undefined in JavaScript Noobs — сообщество новичков
Вообще события лучше всегда отвязывать, если они больше не нужны. Так ты предотвараешь утечки в памяти (когда ты удалил элемент, а какая-то ссылка остается) и помогаешь сборщику мусора
источник

AE

Alexey Ermakov in JavaScript Noobs — сообщество новичков
но из dom-а пропадёт
источник

М

Максим in JavaScript Noobs — сообщество новичков
undefined
Вообще события лучше всегда отвязывать, если они больше не нужны. Так ты предотвараешь утечки в памяти (когда ты удалил элемент, а какая-то ссылка остается) и помогаешь сборщику мусора
Да вот я и пытаюсь разобраться как отвязывать правильно) если допустим добавлен был в другой функции, где область видимости уже закрыта выходит
источник

AE

Alexey Ermakov in JavaScript Noobs — сообщество новичков
Максим
Да вот я и пытаюсь разобраться как отвязывать правильно) если допустим добавлен был в другой функции, где область видимости уже закрыта выходит
addEventListener(nonAnonymousHandler);
removeEventListener(nonAnonymousHandler);
источник

М

Максим in JavaScript Noobs — сообщество новичков
Alexey Ermakov
addEventListener(nonAnonymousHandler);
removeEventListener(nonAnonymousHandler);
у меня в closeModal() есть удалялки событий, но я хотел узнать как проверить удаляются ли они вообще или в пустоту кидаю, например
источник

М

Максим in JavaScript Noobs — сообщество новичков
Собственно изначально это и спросил, как проверить события на элементе, если их уже нет в доме
источник

u

undefined in JavaScript Noobs — сообщество новичков
Максим
у меня в closeModal() есть удалялки событий, но я хотел узнать как проверить удаляются ли они вообще или в пустоту кидаю, например
так это, у тебя на самом modelBanner нет никаких событий. Не надо их пытаться на нем удалить.
События надо удалять именно на том элементе, на котором делал addEventListener
источник

М

Максим in JavaScript Noobs — сообщество новичков
Alexey Ermakov
addEventListener(nonAnonymousHandler);
removeEventListener(nonAnonymousHandler);
т.е. так же как и присваивал через querySelector искать элемент и удалять?
источник

М

Максим in JavaScript Noobs — сообщество новичков
ой не тому
источник

М

Максим in JavaScript Noobs — сообщество новичков
undefined
так это, у тебя на самом modelBanner нет никаких событий. Не надо их пытаться на нем удалить.
События надо удалять именно на том элементе, на котором делал addEventListener
получается
modalBanner.querySelector('.modal__botton.enter').addEventListener('click', nextModal)
- закинул событие
modalBanner.querySelector('.modal__botton.enter').removeEventListener('click', nextModal)
- удалил?
источник

u

undefined in JavaScript Noobs — сообщество новичков
Да
источник

М

Максим in JavaScript Noobs — сообщество новичков
А если элемент уже удален из дома, я смогу к нему обратиться так?
источник

u

undefined in JavaScript Noobs — сообщество новичков
нет
источник

М

Максим in JavaScript Noobs — сообщество новичков
и события получается уже не будет?
источник

М

Максим in JavaScript Noobs — сообщество новичков
или оно так же в памяти будет висеть
источник

u

undefined in JavaScript Noobs — сообщество новичков
События отвяжется от элемента и больше не сработает. Но вот не факт, что оно не останется висеть в памяти
источник

u

undefined in JavaScript Noobs — сообщество новичков
Сборщик его рано или поздно должен зачистить, но на это надо время
источник

М

Максим in JavaScript Noobs — сообщество новичков
undefined
Сборщик его рано или поздно должен зачистить, но на это надо время
В целом кажись понял, спасибо

А если допустим addEventListener('click', ()=>{...}); Такие события как удаляются?
источник

u

undefined in JavaScript Noobs — сообщество новичков
один в один надо функцию передать
источник