1

我有一个 jquery 代码,我必须在页面加载后触发,我在视图的 postRender 函数调用中执行它,但是 postRender 和窗口加载事件是完全异步的,所以,窗口加载事件可能在我进入之前发生postRender 添加加载事件的侦听器,在这种情况下是否可以替换该函数,或者我错过了什么?

谢谢您的帮助

4

1 回答 1

0

您可以使用标志来跟踪全局范围内的事件,并根据标志的状态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
}
于 2015-08-19T18:54:02.957 回答