JQuery Удалить класс после нажатия за пределами div

Shehab Mahmud спросил: 13 июня 2018 в 03:17 в: jquery

Как удалить класс после нажатия за пределами div. следующий код не работает. пожалуйста, помогите мне.thanks ...

<script> 
$(document).ready(function(){
    $(".toggles-menu").click(function(){
        $(".main-nav").slideToggle("200");
    });
});

// Close the dropdown if the user clicks outside of it
window.onclick = function(e) {
  if (!e.target.matches('.toggles-menu')) {
    var mytoggles = document.getElementByClassName("main-nav");
      if (mytoggles.classList.contains('main-nav')) {
       mytoggles.classList.close('main-nav');
      }
  }
}
</script>

1 ответ

ответил: 13 июня 2018 в 05:31

Во-первых, это document.getElement s ByClassName и возвращает массив, поэтому вам нужно использовать [0], чтобы получить первый элемент этого класса.

$(document).ready(function(){
    $(".toggles-menu").click(function(){
        $(".main-nav").slideToggle("200");
    });
});

// Close the dropdown if the user clicks outside of it
window.onclick = function(e) {
  if (!e.target.matches('.toggles-menu')) {
    var mytoggles = document.getElementsByClassName("main-nav")[0];
      if (mytoggles.classList.contains('main-nav')) {
       mytoggles.style.display="none";
      }
  }
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class=".toggles-menu" style="border: 1px solid black">Menu</div>
<div class="main-nav">Main-nav div</div>
Shehab Mahmud ответил: 13 июня 2018 в 04:36
Не работайте .. пожалуйста, скажите другой метод
user10047017 ответил: 13 июня 2018 в 05:30
@Shehab Mahmud Причина, по которой он не работает, заключается в том, что у меня не было div с class main-nav. Я отредактировал свой ответ.

Дополнительное видео по вопросу: JQuery Удалить класс после нажатия за пределами div

jQuery - 007 - Добавление и удаление CSS классов

jQuery - Появление и скрытие блока при нажатие на ссылку

jQuery add or remove class