2013-04-13 247 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(); 

您再次觸發調整大小()事件,以確保尺寸在加載時設置。