2012-01-03 51 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就緒)。

相關問題