2015-11-19 73 views
2

我有多個div的不同的內容和同一類如何在窗口大小上覆蓋我的數組?

<div class="my-div"> ... some content here ... </div> 
<div class="my-div"> ... some content here ... </div> 
<div class="my-div"> ... some content here ... </div> 
<div class="my-div"> ... some content here ... </div> 
<div class="my-div"> ... some content here ... </div> 

現在我把每一個人的高度到一個數組

var myArray = new Array(); 

function pushToArray(height) { 
    myArray.push(height); 
} 

function getHeight() { 
    $('.my-div').each(function() { 
     pushToArray($(this).height()); 
    }); 
} 

這將返回在文檔的每個單獨的高度加載。如果我知道在窗口重新調整大小時調用此函數鏈,它將擴展我的數組。我想要的是它用新的高度取代現有的價值。

我該如何做到這一點?

回答

1

重置getHeight函數中的數組。

var myArray = []; 

function pushToArray(height) { 
    myArray.push(height); 
} 

function getHeight() { 
    // Reinitialize the array 
    myArray = []; 

    $('.my-div').each(function() { 
     pushToArray($(this).height()); 
    }); 
} 

// Call getHeight on window resize 
$(window).resize(getHeight); 
+1

哦,我的上帝,我可以得到它我自己-.-謝謝,工程就像一個魅力 –

+0

@SlimMarten歡迎。樂意效勞 – Tushar

0

您可以使用.map()創建陣列,結合resize事件中使用:

var array; 
$(window).resize(function(){ 
    array = $('.my-div').map(function(){ 
     return $(this).height(); 
    }).get(); 
}).resize();