2012-01-03 94 views
0

我有一些​​jquery函数的问题,我正在预载一些HTML在隐藏块比加载所有新元素时我想移动它dom树。 这是我的脚本知道什么时候新的HTML元素完全加载.load()

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准备就绪,满载从未触发alert()消息,你知道我做miskate?

+2

'preloader.html(newHtml);'在该行之后,元素将可用。没有必要听一个事件。 – 2012-01-03 16:37:05

回答

0

​​用于从服务器加载数据。当你只是.append()一些HTML,它马上就绪。您的load()函数不会显示警报,因为它不是load

2

任何你不会在文档准备好的情况下做这件事的原因吗?由于您直接修改了dom,所以您的更改应该立即可用,所以load()永远不会触发,因为它已在添加代码后进行设置。

0

见的告诫为load method

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

告诫

的常见挑战开发者尝试使用.load() 快捷方式是执行功能来解决当图像(或图像集合)完全加载时。有几个已知的注意事项 这应该注意。它们是:

  • 这并不一致,也不可靠地工作,跨浏览器的
  • 它不正确的WebKit如果图像的src设置为相同的SRC像以前
  • 它不火正确地泡了DOM树
  • 可以停止火已经生活在浏览器的缓存图片

这并不确定,当所有的特别可靠的方式元素的内容已完成加载。您可以考虑使用overloaded load method从一个url加载您的html,并在加载完成后添加到DOM(或者,只需将DOM添加到DOM就绪)。

相关问题