Media Queries in jQuery not worked

233
14 февраля 2018, 12:54
Кто может подсказать почему этот код не срабатывает? Точнее медиа запрос через `js` не срабатывает, функция отрабатывает при любой ширине монитора
checkMedia();
$(window).on('resize', function() {
    checkMedia();
});
function checkMedia() {
    var headerCart = $('.header__cart');
    if (window.matchMedia('(max-width: 992px)').matches) {
        headerCart.mouseenter(function(){
            $('.header__cart > .title').fadeOut(0);
            $('.header__cart > .img').fadeOut(0);
            $('.header__cart > .sum').fadeOut(0);
            $('.header__cart > .content').fadeIn(200);
            $('.header__cart > .button').fadeIn(0);
        });
        headerCart.mouseleave(function(){
            $('.header__cart > .content').fadeOut(0);
            $('.header__cart > .button').fadeOut(0);
            $('.header__cart > .title').fadeIn(200);
            $('.header__cart > .img').fadeIn(200);
            $('.header__cart > .sum').fadeIn(200);
        });
    }
}
Answer 1

Медиа запрос работает, скорее всего вы что-то не так делаете с headerCart (mouseenter и mouseleave). В примере и по скрину можно увидеть что все работает

$(window).on('load', function() { 
  checkMedia(); 
}); 
$(window).on('resize', function() { 
  checkMedia(); 
}); 
 
function checkMedia() { 
 
  console.log('work') 
 
  var headerCart = $('.header__cart'); 
 
  if (window.matchMedia('(max-width: 992px)').matches) { 
 
    console.log('work max-width: 992px') 
 
    headerCart.mouseenter(function() { 
      $('.header__cart > .title').fadeOut(0); 
      $('.header__cart > .img').fadeOut(0); 
      $('.header__cart > .sum').fadeOut(0); 
      $('.header__cart > .content').fadeIn(200); 
      $('.header__cart > .button').fadeIn(0); 
    }); 
 
    headerCart.mouseleave(function() { 
      $('.header__cart > .content').fadeOut(0); 
      $('.header__cart > .button').fadeOut(0); 
      $('.header__cart > .title').fadeIn(200); 
      $('.header__cart > .img').fadeIn(200); 
      $('.header__cart > .sum').fadeIn(200); 
    }); 
  } 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

READ ALSO
Разбивка текста в две колонки

Разбивка текста в две колонки

Хочу вывести в две колонки:"id | Name", но никак не получается

164
Не работает функция .toggleClass

Не работает функция .toggleClass

Есть ссылка a(href= "javascript://0" onclick = "hidden ()") , и сама функция

231
Скролл страницы при использовании svg-pan-zoom

Скролл страницы при использовании svg-pan-zoom

На странице использую Данную библиотекуSVG находится на ширину всего экрана

193