jQuery - 应用类时刷新 dom

jQuery - refresh dom when classes applied?

本文关键字:刷新 dom 应用 jQuery      更新时间:2023-09-26

如果用户在移动设备或桌面上加载页面,我将类应用于正文以控制 megamenu 的工作方式,问题是当以这种方式添加类时没有任何反应,因为我认为它们不在 dom 中,所以不会触发,有没有办法解决这个问题?

if (Modernizr.mq('only all and (max-width: 599px)')) {
    $('body').removeClass('desktop').addClass('mobile');
}
if (Modernizr.mq('only all and (min-width: 600px)')) {
    $('body').removeClass('mobile').addClass('desktop');
}

$('.mobile .navigation nav > ul > li').on({
       mouseenter: function (e) {
          $(this).find('.dropdown').delay(200).slideDown();
       }
});
$('.desktop .navigation nav > ul > li').on({
      mouseenter: function (e) {
          $(this).find('.dropdown').delay(200).addClass("hovered");
      },
      mouseleave: function (e) {
          $(this).find('.dropdown').removeClass("hovered");
      }
});
如果我

没错,你的if (Modernizr.mq('only all and (max-width: 599px)')) {只检查媒体查询,没有附加任何事件?!

如果您想在调整浏览器大小时检查宽度,请尝试以下操作:

$(window).resize(function() {
    if (Modernizr.mq('only all and (max-width: 599px)')) {
        $('body').removeClass('desktop').addClass('mobile');
    }
    if (Modernizr.mq('only all and (min-width: 600px)')) {
        $('body').removeClass('mobile').addClass('desktop');
    }
});