Задать вопрос
DotDash
@DotDash
•••• • •−•• •−•• −−− •−− −−− •−• •−•• −•• −−••−−

Как закрыть только один попап из нескольких открытых?

Имеется пример на jsfiddle

Тут есть 3 уровня:
1 карусель
2 карточка со слайшоу
3 попап фото из карточки

2й и 3й сделаны через fancybox. 3й вызывается из 2го (на фидле видно).
Так вот, когда попап открывается, то таймер закрывает его через некоторое время, если закрыть его раньше, то таймер закроет карточку, т.к. отработает $.fancybox.close().
Обращение по селектору $.fancybox.close() не принимает, да и автор наверное не думал, что кто-то будет делать матрешку из плагина.
Условие наличия класса также не помогло.
  • Вопрос задан
  • 150 просмотров
Подписаться Простой Комментировать
Помогут разобраться в теме Все курсы
  • Нетология
    1С-программист
    10 месяцев
    Далее
  • Skillbox
    Профессия 1C-разработчик
    8 месяцев
    Далее
  • Hi-TECH Academy
    KL 004.2.4 Kaspersky SD-WAN
    2 дня
    Далее
Решения вопроса 2
0xD34F
@0xD34F
Обращение по селектору $.fancybox.close() не принимает, да и автор наверное не думал, что кто-то будет делать матрешку из плагина.

Думал. Если передать true, то закрыто будет не одно только текущее активное окно, а все, что есть.

Хотите закрывать какое-то конкретное окно - надо дёргать не статический метод close, а тот, что доступен через соответствующий экземпляр fancybox. Который передаётся первым параметром в коллбеки. Т.е., в вашем случае должно быть так:

afterLoad(instance) {
  setTimeout(() => instance.close(), 2000);
},
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы