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

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

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

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

4

1 回答 1

2

您的函数initiate()将调用每个像素窗口的大小调整有什么问题。您需要做的就是添加一些setTimeout,例如:

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

我认为没有更清洁的方法,因为您的事件处理程序调用了太多次......

于 2012-12-17T10:30:10.750 回答