2013-04-13 214 views
4

我正在尝试制作具有正方形网格的响应式网站。所以我需要每个div的高度(带有一个'main'类)与调整时的div宽度相同。我对jQuery相当陌生,所以我希望有人能告诉我我在这里做错了什么。jQuery - 设置div宽度等于div宽

var divWidth = $('.main').width(); 

$(window).resize(function(){ 
    $('.main').height() = divWidth; 
}); 

非常感谢!

+0

在'divWidth'之前尝试不使用'var' .. var scopes .. – asifrc

+0

您可能还想计算页面调整大小时的宽度。 $(”主)的高度($(本).WIDTH())。 –

+1

有没有人认真复制并粘贴彼此的答案? – asifrc

回答

6

你可以这样做:

var divWidth = $('.main').width(); 

$(window).resize(function(){ 
    $('.main').height(divWidth); 
}); 
+0

你的代码和其他两个答案有什么区别? – asifrc

+0

非常感谢。我选择这个作为答案,因为它是第一个。答案是一样的,因为我的问题很简单。我是一个新手!感谢大家! – user2277377

2

尝试

var divWidth = $('.main').width(); 

$(window).resize(function(){ 
    $('.main').height(divWidth); 
}); 
2

试试这个:

var divWidth = $('.main').width(); 

$(window).resize(function(){ 
    $('.main').height(divWidth); 
}); 

注意,不带任何参数调用时height()会给你的高度,但一个参数,它会改变对象的高度;)

5

您不应该声明divWidth超出resize()函数的范围,因为在触发resize事件时该值不会更新。此外,还有可能存在多个.main元素。要么使用ID,要么遍历所有类(如果有多个实例)。

试试这个:

$(window).resize(function(){ 
    // If there are multiple elements with the same class, "main" 
    $('.main').each(function() { 
     $(this).height($(this).width()); 
    }); 

    // Or you can switch to using an ID 
    $('#main').height($('#main').width()); 
}).resize(); 

您再次触发调整大小()事件,以确保尺寸在加载时设置。