Jquery 知道新HTML元素何时用.load()完全加载

Jquery 知道新HTML元素何时用.load()完全加载,jquery,load,Jquery,Load,我对.load()jquery函数有一些问题,我试图在一个隐藏块中预加载一些HTML,而不是在加载所有新元素时,我希望将其移动到dom树中。 那是我的剧本 var preloader = $(document.createElement("div")).attr('id', 'msgloader').css({ visibility: "visible"}); // visible is just for test it preloader.html( newHtml ); // newHtm

我对
.load()
jquery函数有一些问题,我试图在一个隐藏块中预加载一些HTML,而不是在加载所有新元素时,我希望将其移动到dom树中。 那是我的剧本

var preloader = $(document.createElement("div")).attr('id', 'msgloader').css({ visibility: "visible"}); // visible is just for test it 
preloader.html( newHtml ); // newHtml is a string with html elements like images table etc.
$("body").append(preloader);
preloader.load(function() { alert("div is ready"); });

我不知道为什么,但当msgloader中的新HTML准备就绪并完全加载时,永远不会触发
警报()
消息您知道我在哪里制作miskate吗?

.load()
用于从服务器加载数据。当您只需
.append()
一些HTML时,它就可以立即准备就绪。您的
load()
函数不会显示警报,因为它不会
load
加载任何内容。

您为什么不在document ready中执行此操作?由于您正在直接修改dom,您所做的更改应该立即可用,因此load()永远不会触发,因为它是在您添加代码之后设置的。

请参阅以下内容的注意事项:

与图像一起使用时加载事件的注意事项

开发人员试图使用.load()解决的一个常见问题 快捷方式是在图像(或 图像)已完全加载。有几个已知的警告 这一点值得注意。这些是:

  • 它在跨浏览器中无法稳定工作,也不可靠
  • 如果图像src设置为与以前相同的src,则在WebKit中无法正确触发
  • 它不能正确地在DOM树上冒泡
  • 对于已经存在于浏览器缓存中的图像,可以停止激发
它不是确定元素的所有内容何时完成加载的特别可靠的方法。您可以考虑使用从URL加载HTML,并在加载完成后添加到DOM(或者,只需在DOM准备就绪时添加到DOM)。<代码> >预加载程序。HTML(NEWHTML);<代码>在该行之后,元素将可用。没有必要去听一件事。