【问题标题】:if window width is bigger than 800px remove this div, but without refreshing site [duplicate]如果窗口宽度大于 800 像素,则删除此 div,但不刷新站点 [重复]
【发布时间】:2018-09-10 10:58:20
【问题描述】:

我在 jquery 中遇到了这个问题,当窗口宽度大于 800px 时删除这个 div:

if ($(window).width() > 800) {
  $('.menu').remove();
}

但这不会立即发生,当窗口宽度大于 800 像素时,您必须刷新站点。顺便提一句。我有一些 CSS 附加到.menu。我听说了一些关于事件preventDefault() 的事情,但它适用于链接或类似的东西。你能帮帮我吗?

【问题讨论】:

  • 考虑使用 CSS 媒体查询而不是 jQuery。
  • 答案之间的投票大战大声笑。
  • @Mr.ZZ 不,不是,因为我没有在这里投反对票
  • @Mr.ZZ 不,不是。我从来没有对答案投反对票,并且将带有属性的 jQuery 包含在 LGSon 中,那么我为什么要对我引用的答案投反对票呢?但是如果他们不喜欢这个问题,有些人会否决所有答案(可能是因为 MikeMcCaughan 将其标记为重复)。
  • @LGSon 你为什么要删除你的答案?这是对这个问题的直接回答。我的建议更多的是替代解决方案。

标签: jquery


【解决方案1】:

考虑使用 CSS 媒体查询而不是 jQuery:

@media (min-width: 800px) {
    .menu { display: none; }
}

如果您想使用 jQuery(或 JavaScript),您需要将该代码放在 resize 事件处理程序中:

$( window ).resize(function() {
  if ($(window).width() > 800) {
    $('.menu').remove();
  }
});

resize 事件在某些浏览器上无法顺利运行,尤其是移动浏览器。

【讨论】:

    猜你喜欢
    • 2017-11-30
    • 1970-01-01
    • 2017-08-27
    • 2013-06-23
    • 1970-01-01
    • 2014-01-12
    • 2020-01-17
    • 1970-01-01
    • 2014-01-23
    相关资源
    最近更新 更多