Size: a a a

JavaScript — русскоговорящее сообщество

2020 April 21

S

Sm•ok 😈✔️ in JavaScript — русскоговорящее сообщество
И листенер сбивается?
источник

V

Vanya in JavaScript — русскоговорящее сообщество
Sm•ok 😈✔️
Проблема в том, что у тебя элемент пропадает?
Элемент на месте, а вот листенер проподает, при обновлении появляется. Суть в следующем, есть контейнер с карточками при клике мы переворачиваем карточку, если отводим с области карточки, она поворачивается обратно
источник

V

Vanya in JavaScript — русскоговорящее сообщество
Я бы повесил mouseleave на контейнер, но оно не всплывает, содержимое контейнера обновляется при переходе на другие разделы приложения
источник

АК

Алексей Клименко in JavaScript — русскоговорящее сообщество
Vanya
Я бы повесил mouseleave на контейнер, но оно не всплывает, содержимое контейнера обновляется при переходе на другие разделы приложения
Так у вас физически URL navigation происходит или нет?

Если нет, то займитесь тем кодом, что выполняет обновление областей в приложении, и добавьте вызовы нужных событий туда.
источник

V

Vanya in JavaScript — русскоговорящее сообщество
Алексей Клименко
Так у вас физически URL navigation происходит или нет?

Если нет, то займитесь тем кодом, что выполняет обновление областей в приложении, и добавьте вызовы нужных событий туда.
при переходе url меняется, данные в контейнере обновляются, для каждого url свой контент
источник

АК

Алексей Клименко in JavaScript — русскоговорящее сообщество
Vanya
при переходе url меняется, данные в контейнере обновляются, для каждого url свой контент
Тогда о каких событиях вообще может идти речь, если вы загружаете в браузер новую страничку?
источник

V

Vanya in JavaScript — русскоговорящее сообщество
Алексей Клименко
Тогда о каких событиях вообще может идти речь, если вы загружаете в браузер новую страничку?
Вот я думал, можно ли это как-то сделать
источник

Кm

Кирилл mrDoode in JavaScript — русскоговорящее сообщество
Всем привет, вопрос на засыпку.
Мне нужно реализовать закрытие попапа при клике в любом месте, кроме попапа и кнопки, которая его вызывает.
Я вешаю бинд клика на весь документ, а дальше как?
Я ещё понял, как исключить саму кнопку
if (event.target.classList.value.indexOf('js-popup-show') === -1) {
Но а как исключить сам попап? Он сложный и состоит из разных элементов
Надо как-то с event.path работать?
источник

AP

Anton Permyakov in JavaScript — русскоговорящее сообщество
Кирилл mrDoode
Всем привет, вопрос на засыпку.
Мне нужно реализовать закрытие попапа при клике в любом месте, кроме попапа и кнопки, которая его вызывает.
Я вешаю бинд клика на весь документ, а дальше как?
Я ещё понял, как исключить саму кнопку
if (event.target.classList.value.indexOf('js-popup-show') === -1) {
Но а как исключить сам попап? Он сложный и состоит из разных элементов
Надо как-то с event.path работать?
if (popupElement.contains(event.target))
источник

MS

Maksim Sheiko in JavaScript — русскоговорящее сообщество
или event.target.closest
источник

Кm

Кирилл mrDoode in JavaScript — русскоговорящее сообщество
Anton Permyakov
if (popupElement.contains(event.target))
Спасибо, то что надо было
источник

AP

Anton Permyakov in JavaScript — русскоговорящее сообщество
Кирилл mrDoode
Спасибо, то что надо было
у classList тоже есть метод contains, который делает тоже самое, что твой indexof
источник

Кm

Кирилл mrDoode in JavaScript — русскоговорящее сообщество
Anton Permyakov
у classList тоже есть метод contains, который делает тоже самое, что твой indexof
Это будет оптимальней?
источник

AP

Anton Permyakov in JavaScript — русскоговорящее сообщество
это будет чище, как минимум
источник

Кm

Кирилл mrDoode in JavaScript — русскоговорящее сообщество
Спасибо. С утра голова не варит
источник

АК

Алексей Клименко in JavaScript — русскоговорящее сообщество
Я бы предложил на сам попап повесить capture, в котором stopPropagation, а на всё остальное – bubbling с действием.
источник

Кm

Кирилл mrDoode in JavaScript — русскоговорящее сообщество
Алексей Клименко
Я бы предложил на сам попап повесить capture, в котором stopPropagation, а на всё остальное – bubbling с действием.
Чем это лучше предложенного выше варианта?
источник

И

Иван in JavaScript — русскоговорящее сообщество
Кирилл mrDoode
Всем привет, вопрос на засыпку.
Мне нужно реализовать закрытие попапа при клике в любом месте, кроме попапа и кнопки, которая его вызывает.
Я вешаю бинд клика на весь документ, а дальше как?
Я ещё понял, как исключить саму кнопку
if (event.target.classList.value.indexOf('js-popup-show') === -1) {
Но а как исключить сам попап? Он сложный и состоит из разных элементов
Надо как-то с event.path работать?
источник

АК

Алексей Клименко in JavaScript — русскоговорящее сообщество
Кирилл mrDoode
Чем это лучше предложенного выше варианта?
Да не лучше и не хуже, просто в голову пришло. Достаточно простое решение.
источник

Кm

Кирилл mrDoode in JavaScript — русскоговорящее сообщество
Спасибо!
источник