2016-02-04 52 views
1

我是javascript新用戶。它的工作正常,如果我們刷新頁面,但它不工作時,我們調整窗口大小。在javascript中多個li的高度相同

$(window).load(function(){ 
    equl_height(); 
}); 

$(window).resize(function(){ 
    equl_height(); 
}); 


function equl_height() { 
    var highestBox = 0; 
    $('ul li').each(function(){ 
     if($(this).height() > highestBox){ 
      highestBox = $(this).height(); 
     } 
    });  
    $('ul li').height(highestBox); 
} 
+0

你能分享一個小提琴http://jsfiddle.net?或者把控制檯日誌寫入'equl_height'方法來檢查方法是否被執行? – gurvinder372

回答

0

window.addEventListener("resize", equl_heigh);

喝彩!

+0

爲什麼你把「equl_heigh」作爲一個字符串?爲什麼addEventListener的工作,如果jQuery代碼沒有? – nnnnnn

+0

hello jimish 其不工作 $(window).load(function(){ equl_height(); }); window.addEventListener(「resize」,「equl_height」); function equl_height(){ var highestBox = 0; 。 $( 'UL利')每個(函數(){ 如果($(本).height()> highestBox){ highestBox = $(本).height();} }); $('ul li')。height(highestBox); } –

+0

回答更新。不要把'equl_heigh'作爲字符串 –

0

問題在於如何測量li的高度。使用scrollHeight而不是height()。檢查這個fiddle

更新您的equl_height

function equl_height() { 
    console.log("resizing"); 
    var highestBox = 0; 
    $('ul li').each(function(){ 
     //var height = $(this).outerHeight(); 
     var height = $(this)[0].scrollHeight; 
     if(height > highestBox){ 
      highestBox = height; 
     } 
    });  
    $('ul li').outerHeight(highestBox); 
} 

此外,由於調整大小事件可以以較高的速率被解僱所以試試這個throttling trick爲好。

+0

*「不重寫window.onresize函數」* - 問題中顯示的代碼(當前)不使用onresize,它使用相關的jquery方法。 – nnnnnn

+0

@nnnnnn是的,我的壞。謝謝指出 – gurvinder372

+0

@ gurvinder372 非常感謝 其工作正常 –