函数从$(document).ready外部调用到$(document).ready中定义的函数

时间:2012-09-03 14:25:42

标签: javascript jquery function-calls

我想使用$(window).resize在移动设备方向改变时调用某些功能,我在$(document).ready中编写了我的所有代码,这在我使用Android设备时起作用,但是在使用了iPhone后检测到第一个方向它甚至不再调用$(window).resize。当我把(窗口).resize函数放在$(document).ready之外时,它也适用于iPhone。

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

2 个答案:

答案 0 :(得分:2)

当您需要使用来自两个不同事件处理程序的东西时,您应该将某些东西移出事件处理程序。您无法在任一事件处理程序中创建方法,因为您无法知道是先触发ready还是resize

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

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

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

$(window).resize(function(){
  commonMethods.someMethod();
});

答案 1 :(得分:1)

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