【问题标题】:$(window).on("load") not triggered in postRender$(window).on("load") 未在 postRender 中触发
【发布时间】:2015-08-19 16:06:33
【问题描述】:

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

感谢您的帮助

【问题讨论】:

  • 实际上,rendrJs 以不同的方式工作,这是这里的主要问题
  • 抱歉错过了rendrJs标签
  • 你不能用$(loadFunction)在你的模板中插入一个脚本标签吗?
  • $(window).load 事件在我要求之前就发生了,这是我的主要问题

标签: javascript jquery window-load rendr


【解决方案1】:

您可以使用标志在全局范围内跟踪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
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-19
    相关资源
    最近更新 更多