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

时间:2012-10-05 04:02:16

标签: jquery html css media-queries

所以,我在宽显示器上有一个2up的布局,然后在使用媒体查询的小显示器上有一个列表视图。一切都很好,除了我在宽屏设置上也有jQuery .show()/。hide()ing元素。 那个效果也不错,但是当我调整窗口大小时:jQuery当前的任何内容.hide()d都会显示,尽管我的媒体查询定义了display:block;对于那个大小的那些元素。

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

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

1 个答案:

答案 0 :(得分:3)

首先,jQuery将替换您更改的元素的样式,因此无论您使用的是什么,以前的CSS都是:

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

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

1)创建一个隐藏类,这样你就可以为类创建一个媒体查询,所以当窗口是> 1000px它将显示:无;但如果它有1000<它可以有显示:块;使用:

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

而不是hide()。

2)使用绑定到窗口的jQuery http://api.jquery.com/resize/的resize()事件进行播放,这样就可以执行此操作:

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

我希望这就是你要找的东西。