Задать вопрос

Почему приведенный код некорректно работает в SAFARI и FIREFOX?

function myFunction() {
  var x = document.getElementById("myDIV");
  if (x.style.display === "none") {
    function closeModalOnClickOutside(){
      if (!event.target.closest('#myDIV') && !event.target.closest('#myLink') && document.getElementById("myDIV").style.display !== "none") {
        console.log('close');
        window.removeEventListener('mousedown', closeModalOnClickOutside);
        document.getElementById("myDIV").style.display = "none";
      }
    }
    window.addEventListener('mousedown', closeModalOnClickOutside);
    x.style.display = "block";
  } else {
    x.style.display = "none";
  }
}


Данный код обрабатывает показ меню по клике на элемент.
При повторном клике меню исчезает.
Также исчезает при клике в сторону фоновую.

В Сафари и Файерфоксе не срабатывает скрытие меню при клике в фоне. В Хроме работает корректно.

Для примера - сайт Arthata.by - клик на элемент Цены вверху экрана.
  • Вопрос задан
  • 96 просмотров
Подписаться 1 Простой Комментировать
Помогут разобраться в теме Все курсы
  • Нетология
    Fullstack-разработчик на Python + нейросети
    20 месяцев
    Далее
  • Skillfactory
    Профессия Веб-разработчик
    12 месяцев
    Далее
  • Академия Eduson
    Fullstack-разработчик на JavaScript
    11 месяцев
    Далее
Решения вопроса 1
kreotech
@kreotech
Абстрактно-ориентированный программист
А ничего что вы используете event не понятно откуда взявшийся в функции closeModalOnClickOutside

Его надо внести в параметры функции
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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