【发布时间】:2011-06-21 03:29:06
【问题描述】:
我正在尝试使用媒体查询来禁用特定浏览器宽度的浮动。此 if 语句仅在我重新加载当前大小的页面时才有效。是否可以让 jQuery 在 CSS 属性更改时应用更改?
if($('.two-column li').css('float') == 'left') {
$('.two-column li').equalHeights();
}
我可能应该在第二个 $('.two-column li') 上使用 $(this) 或其他东西,但我不知道为什么它不起作用。我对jQuery了解不多。
编辑:
默认情况下,两列 li 的样式类似于
.two-column li {
float: left;
}
然后让我们说......
@media only screen and (max-width: 767px) {
.two-column li {
float: none;
}
}
这确实有效。当宽度低于 767px 时,它会停止浮动。我上面的丑陋 jquery 似乎部分工作。默认情况下,equalheights 插件会运行,但当宽度低于 767px 时,插件不会运行。我的问题是它是否运行取决于加载页面时浏览器的大小。我试图让它像响应式设计中的媒体查询一样动态。
我在准备好文档时调用它。
在更多研究和下面的评论的帮助下,现在是这样,包括准备好文档……但在调整大小时仍然没有这样做,需要刷新。
$(document).ready(function () {
$('.two-column li').filter(function(index) {
return $(this).css('float') != 'none'
}).equalHeights();
});
【问题讨论】:
-
你什么时候调用这个代码?它在 window.onresize 事件处理程序中吗?请提供更多上下文
-
你能发布你用来根据浏览器宽度切换样式的代码吗?有一种方法可以通过调整浏览器大小来让浏览器尊重它,因此这可能是修复它的最简单方法。
-
目前尚不清楚媒体查询与您的代码有何关联,以及 jQuery 在您的示例中做了什么。媒体查询在这里定义:w3.org/TR/css3-mediaqueries
标签: jquery if-statement media-queries