我有一个 jquery 代码,我必须在页面加载后触发,我在视图的 postRender 函数调用中执行它,但是 postRender 和窗口加载事件是完全异步的,所以,窗口加载事件可能在我进入之前发生postRender 添加加载事件的侦听器,在这种情况下是否可以替换该函数,或者我错过了什么?
谢谢您的帮助
我有一个 jquery 代码,我必须在页面加载后触发,我在视图的 postRender 函数调用中执行它,但是 postRender 和窗口加载事件是完全异步的,所以,窗口加载事件可能在我进入之前发生postRender 添加加载事件的侦听器,在这种情况下是否可以替换该函数,或者我错过了什么?
谢谢您的帮助
您可以使用标志来跟踪全局范围内的事件,并根据标志的状态window.load
选择执行路径。postRender()
// define this in the global scope
var windowHasLoaded = false;
$(window).on('load', function(){
windowHasLoaded = true;
});
然后在view.postRender()
:
// window has already loaded, just run now
if(windowHasLoaded) {
doStuff();
}
// run on window load event
else {
$(window).on('load', doStuff);
}
var doStuff = function() {
// the stuff to do
}