0

我想在移动设备方向改变时使用 $(window).resize 调用某个函数,我在 $(document).ready 中编写了所有代码,这在我使用 Android 设备时有效,但在第一次定向后使用 iPhone检测到它不再调用 $(window).resize 。当我将 (window).resize 函数放在 $(document).ready 之外时,它也适用于 iPhone。

在这个 $(window).resize 函数中,我必须调用 $(document).ready 块中定义的方法,那么我该怎么做呢?

4

2 回答 2

2

由于您需要使用来自两个不同事件处理程序的内容,您应该将其移出事件处理程序。您无法在任一事件处理程序中创建方法,因为您无法知道是否readyresize将首先触发。

例如,您可以创建一个包含方法的对象:

var commonMethods = {
  data: 42,
  someMethod: function() { alert(this.data); }
};

$(document).ready(function(){
  commonMethods.someMethod();
});

$(window).resize(function(){
  commonMethods.someMethod();
});
于 2012-09-03T14:33:17.317 回答
1

$(document).ready()在块外定义您的方法。
然后只在整个代码中需要它们时调用它们。这样,您就可以从$(document).ready()$(window).resize()块访问它们。

于 2012-09-03T14:36:40.777 回答