【问题标题】:how to get actual page load after replacing content by using Jquery replaceWith()如何在使用 Jquery replaceWith() 替换内容后获取实际页面加载
【发布时间】:2014-07-15 04:55:27
【问题描述】:

我正在开发一个项目,该项目有一个带有库链接的 html 页面,此外它还使用 Jquery replaceWith() 动态打印页面的一部分。 动态打印的部分包括src to images等。

发生的情况是图像未加载,因此页面未立即呈现。 我需要以某种方式获得相当于一个 window.onload 事件,它告诉我页面何时 已加载所有这些内容,以便我启动影响页面的代码等。

我尝试在脚本末尾添加它-似乎不起作用- 有什么建议/想法吗?

我已经尝试过window.onload等,我想知道我是否附上了 $("#content").ready() 可以与加载相比,或者如果我必须在由 replaceWith() 写入的内容中编写一个窗口 onload。我实际上已经尝试了其中的一些,但似乎没有任何效果,但我可能正在错误地实施它。 谢谢!

【问题讨论】:

  • replaceWith 代码是否在 AJAX 函数中?
  • 你试过 JS Promises 吗?
  • 它不在Ajax函数中,我还没有尝试过JS Promises。

标签: javascript jquery html


【解决方案1】:

注意,htmljs 不会出现在原始帖子中。

尝试以下(可调整)模式,例如,将不同的class 分配给“原始内容”(.ocontent)、“新内容”(.ncontent),检查使用$.is()

var callback = function (status) {
    if (status === false) {
      console.log(status);
        // new content ready
        // do stuff
    };
    if (status === true) {
      console.log(status);
        // old content present
        // do stuff
    };
};

  $.when($(".ocontents").replaceWith("<img class=ncontents />"))
  .done(function(o) {
    callback($("#content *").is(o));
  });

jsfiddle http://jsfiddle.net/guest271314/6agJz/

http://api.jquery.com/is/

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多