2012-12-17 60 views
1
window.onresize = function() { 
    initiate(); 
}; 

function initiate() { 
    var windowWidth = $(window).width(); 
    var windowHeight = $(window).height(); 
    ... 

我想要做的就是重畫我的畫布,每當屏幕變成(移動網絡應用程序)。現在的問題是,如果我打開屏幕,$(window).width();給出了舊的寬度,也是$(document).width();不起作用。計時器可以解決問題,但是必須有更好更清潔的方式。當我用window.onresize觸發事件時,爲什麼會得到window.height的錯誤值?

有誰知道如何解決這個問題?

回答

2

您的功能initiate()將調用每個像素窗口的大小調整是什麼錯誤。所有你需要做的是添加一些setTimeout例如:

var resizeHandler; 
window.onresize = function() { 
    clearInterval(resizeHandler); 
    resizeHandler = setTimeout(initiate, 500); 
}; 

我不認爲這是一個更清潔的方式爲你的事件處理程序調用太多時間......

+0

謝謝,它工作正常! –

相關問題