2016-05-09 2 views
0

Я хотел бы сделать подменю fadeIn, но только над шириной окна 850 пикселей. Мой код работает только в том случае, если я обновляю страницу, но я бы хотел сделать это, когда я изменил размер окна (или изменил настройку телефона). Что не так?JQuery условное увядание по ширине окна

function WinSize() { 
    var winwidth = $(window).width(); 
    if (winwidth > 850) { 
     $('#main-menu > ul > li').on({ 
      mouseenter: function() { 
       $(this).find("ul").fadeIn(300); 
      }, 
      mouseleave: function() { 
       $(this).find("ul").fadeOut(300); 
      } 
     }); 
    } 
} 

$(window).on("load resize", WinSize); 
+0

Написать свой HTML код или создать демо – Mohammad

+0

вы можете использовать $ (окно) .resize (WinSize) – Thorin

+0

@Ansar Это будет связывать множество событий с одним и тем же элементом. Поражает производительность и отладка. – Justinas

ответ

1

Попробуйте скопировать условия в вашем .on. В настоящее время вы связывание события, когда на нагрузочном окне размера> 850, а не осуществление реальных .on событий

function WinSize() { 
    $('#main-menu > ul > li').on({ 
     mouseenter: function() { 
      var winwidth = $(window).width(); 

      if (winwidth > 850) { 
       $(this).find("ul").fadeIn(300); 
      } 
     }, 
     mouseleave: function() { 
      var winwidth = $(window).width(); 

      if (winwidth > 850) { 
       $(this).find("ul").fadeOut(300); 
      } 
     } 
    }); 
} 

$(window).on("load resize", WinSize); 
Смежные вопросы