我使用以下jquery代码调整一组元素的大小,使它们的高度与最高的元素相同。当我刷新屏幕时,该函数运行良好,但$(window).resize()似乎不起作用。
jQuery(document).ready(function($) {
function equal_height(target) {
var maxHeight = -1;
$(target).each(function() {
maxHeight = maxHeight > $(this).height() ? maxHeight : $(this).height();
});
$(target).each(function() {
$(this).height(maxHeight);
});
};
var responsive_viewport = $(window).width();
if (responsive_viewport >= 768) {
equal_height('.cta-text');
$(window).resize(function() {
equal_height('.cta-text');
});
}
});发布于 2014-04-09 19:16:29
解决了这个问题!
问题不在于调用函数的方式或时间,它无法工作,因为它基于第一次运行函数时设置的大小来计算新的大小。
我将此代码添加到equal_height函数的开头,以将元素的高度重置为其自然高度。
$(target).each(function() {
$(this).height('auto');
}); 发布于 2014-04-09 04:25:55
我会考虑重构来分离你的函数和事件。另外,您正在检查document ready上的窗口,此时窗口对象还没有加载任何东西( DOM在窗口呈现之前就准备好了)。试试这个:
jQuery(window).load(function($) {
var responsive_viewport = $(window).width();
if (responsive_viewport >= 768) {
equal_height('.cta-text');
$(window).resize(function() {
equal_height('.cta-text');
});
}
});
function equal_height(target) {
var maxHeight = -1;
$(target).each(function() {
maxHeight = maxHeight > $(this).height() ? maxHeight : $(this).height();
});
$(target).each(function() {
$(this).height(maxHeight);
});
};我还应该提到的是,因为你的resize函数是在一个条件语句中,它只会在视区大于768像素时触发-所以确保你在调试时考虑到了这一点。
发布于 2016-03-04 04:32:43
使用$(window).resize(function(){});在调整大小时触发事件。它只在刷新时起作用,因为您当前没有告诉它在调整大小时运行任何东西,而是在文档完全加载并准备就绪时运行。
https://stackoverflow.com/questions/22947287
复制相似问题