jQuery .hide() 不会被媒体查询撤消

标签 jquery html css media-queries

因此,我在宽显示器上有一个 2up 的布局,然后使用媒体查询在较小的显示器上有一个 ListView 。一切都工作得很好,除了我在宽屏设置上还有 jQuery .show()/.hide()ing 元素。 也很好用,但是当我调整窗口大小时:jQuery当前拥有的任何 .hide()d 都不会显示,尽管我的媒体查询定义了 display: block;对于那些具有该尺寸的元素。

相关网站位于here ,来源为 on GitHub .

我做错了什么以及如何解决这个问题?

最佳答案

首先jQuery会替换你改变的元素的样式,所以不管你之前的CSS是什么:

$("#myelement").hide();

它将强制更改 CSS 显示属性,这里有 2 个选项。

1) 创建一个隐藏类,这样您就可以为该类创建一个媒体查询,因此当窗口 > 1000px 时,它将显示:none;但如果它有 1000< 它可以有 display:block;使用:

$("#myElement").addClass("hidden");

而不是 hide()。

2) 玩转 jQuery 的 resize() 事件 http://api.jquery.com/resize/绑定(bind)到窗口,这样你就可以这样做:

$(window).resize(function(){
    if($(window).width()> 1000){
        //Hide or show, or do some pirate stuff
    }else{
        //More pirate stuff
    }
});

我希望这就是您正在寻找的内容。

关于jQuery .hide() 不会被媒体查询撤消,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12739294/

相关文章:

javascript - 单击链接中的更改文本不起作用?

jquery - 如何根据特定值在jquery datepicker中设置maxDate

html - margin : 0 auto not working in IE only

jquery - .fadeToggle() 使我的子列表无法访问

javascript - 速度测试: while() cycle vs. jQuery的each()函数

php - 如何避免JS代码变成input?

javascript - 根据使用名称选择的下拉值更改图标

javascript - parse Int 减法在 JS (Ionic 5 + Angular) 中如何工作?

HTML/CSS : column-like layout for list elements

html - CSS 缩放过渡缓和不起作用