2012-01-31 24 views
0

出於某種原因,當頁面第一次加載和內容被調整大小時,它將只運行「matchColumns」,如果我在鉻中做一個「檢查元素」。似乎無法理解爲什麼它會這樣做,而不是每次更改內容。 Here是我正在使用的網站。提前致謝。高度沒有被設置,除非我「檢查頁面」

var $j = jQuery.noConflict(); 

$j(document).ready(function() { 
    MC.general.init(); 
    MC.homeSlider.init(); 
    MC.homeMap.init(); 
    $j(window).resize(function() { 
     $j('#layer-base, #layer-top, .exposed, ').matchColumns(); 
    }); 
}); 

$j.fn.matchColumns = function(){ 
    var height_tar = $j(document).height(); 
    $j(this).css({"height": (height_tar) + "px"}); 
}; // matchColumns 
+0

它似乎爲我工作,但我只嘗試在側面'matchColumns()'添加一個斷點你確定它不工作,但所需的效果沒有發生?你有沒有嘗試添加像'consonle.log('matchColumns跑');'確保? – ianbarker 2012-01-31 14:11:29

+0

如果你想檢查每次內容改變,你應該綁定到'change'事件。調整大小是...很好調整大小,當瀏覽器窗口改變大小 – bububaba 2012-01-31 14:18:23

+0

我認爲這與使用'$(document).height()'而不是'$(window).height()'有關。就我所知,文檔高度在調整大小時不會改變。 – Lazarus 2012-01-31 14:18:26

回答

1

檢查打開Web檢查在Chrome/Safari或Firefox中的Firebug,這會佔用視口的某些部分,並觸發窗口調整大小事件(即使該窗口還沒有就改變大小的OS從你的文檔的角度來看,它有)。

除了調用調整大小的調用之外,我還會添加對matchColumns的調用,該調用立即運行。所以就像:

$j(window).resize(function() { 
    $j('#layer-base, #layer-top, .exposed, ').matchColumns(); 
}); 
$j('#layer-base, #layer-top, .exposed, ').matchColumns(); 

或更好的是,將該行分解爲函數。