当我用window.onresize触发事件时,为什么我得到window.height的错误值?

时间:2012-12-17 10:26:38

标签: javascript jquery html

window.onresize = function () {
  initiate();
};

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

我想要做的是在屏幕转动(移动网络应用程序)时重绘我的画布。我现在遇到的问题是,如果我转动屏幕,$(window).width();给出旧的宽度,也是$(document).width();不起作用。计时器可以解决问题,但必须有更好更清洁的方法。

有谁知道如何解决这个问题?

1 个答案:

答案 0 :(得分:2)

您的函数initiate()会调用每个像素窗口调整大小的错误。您需要做的就是添加一些setTimeout,例如:

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

我认为事件处理程序调用太多时间并不是一种更干净的方式......