想知道是否有人可以提供幫助,因爲沒有人提供解決方案這個問題!元素完全加載到頁面後觸發函數
如何等待一個動態加載的元素(例如另一個.html頁面的特定div)首先被完全加載,這樣纔可以觸發一個函數?
.load
顯然不會按這個 post.
任何想法的OP指出了工作?
非常感謝!
更新: 一些更多的信息:我使用.load
從包含由廣場使用的數據的另一個頁面加載div元素(使用.load
的回調執行)。我目前使用setTimeout
來確保div已加載,因此Galleria不會加載得太快而空。但我不喜歡這種業務,它太多拼湊解決方案。
的div被加載:
<div id="source1" class="container">
<div class="thumbnails"><a href="images/gallery/recent/7.jpg"><img src="images/navigation/recent/7.jpg"/></a></div>
<div class="thumbnails"><a href="images/gallery/recent/6.jpg"><img src="images/navigation/recent/6.jpg"/></a></div>
<div class="thumbnails"><a href="images/gallery/recent/5.jpg"><img src="images/navigation/recent/5.jpg"/></a></div>
<div class="thumbnails"><a href="images/gallery/recent/4.jpg"><img src="images/navigation/recent/4.jpg"/></a></div>
</div>
<div id="source2" class="container">
<div class="thumbnails"><a href="images/gallery/recent/3.jpg"><img src="images/navigation/recent/3.jpg"/></a></div>
<div class="thumbnails"><a href="images/gallery/recent/2.jpg"><img src="images/navigation/recent/2.jpg"/></a></div>
<div class="thumbnails"><a href="images/gallery/recent/1.jpg"><img src="images/navigation/recent/1.jpg"/></a></div>
</div>
的腳本的一部分:
$(document).on("click", "#menu", function(event) {
event.preventDefault();
var link = this.hash;
var ref = this.hash.replace("#", "") + ".html " + link;
var deferred2 = $.Deferred();
goLoad();
function goLoad(){
switch(link){
case "#recent":
$("#recent").css("height", window.innerHeight);
$("#recent").load(ref + " > *", null, goRecent());
break;
/*..other cases...*/
}
};
function goRecent(){
setTimeout(function(){
deferred2.resolve();
deferred2.done(doGallerySize, doGallery, goScroll)
function doGallerySize(){
$("#gallery").css("height", window.innerHeight);
}
function doGallery(){
Galleria.run("#galleria",{
dataSource:"#source1, #source2",
keepSource:true,
responsive:true,
thumbnails:false
});
}
function goScroll(){
$.smoothScroll({
scrollTarget: link,
afterScroll: function() {
$(".stickynav").sticky({topSpacing:0});}
});
}
}, 100);
}
});
通常您使用插入元素的方法的回調函數。提供一些執行動態元素插入的代碼。如果您只需要事件綁定,則可以使用事件委託方法。總的來說,這個問題太模糊了 – charlietfl 2014-10-18 15:26:19
我認爲最簡單的方法是在加載的.html頁面的末尾運行Javascript。我不確定你是如何加載你的文件,或者我可以幫助更多。 – EvilZebra 2014-10-18 15:27:18
其他div如何加載?如果您向我們展示導致div加載的代碼,我們可以向您展示如何在加載完成後執行某些操作。 – Pat 2014-10-18 15:37:27