当我点击navMenu中的链接时,我有以下代码将一些html(包括锚点)加载到div中。当我单步执行它时,<p>'s
被隐藏,但当页面最终出现时它们不会被隐藏。显示页面后,contentClickFunction按预期隐藏/显示<p>'s
。
我相信我需要像'ready'这样的东西,但是要分配给innerHtml。有没有我可以听的事件,所以我的隐藏呼叫没有被覆盖?
我知道我可以通过添加css设置#content li>p { display:none; }
来实现我的目标,但我想了解发生了什么。
$(document).ready(function(){
$("#content").on("click", "li>a", contentClickFunction);
$("#navMenu a").click(function(event){
var href = $(this).attr("href");
event.preventDefault();
$.get( href , function(data){
$("#content").html(data);
});
$("#content li > p").hide();
});
});
答案 0 :(得分:2)
DOM ready
只触发一次。
您可以使用mutation events(DOMNodeInserted
),但不推荐使用它们。
您还可以创建自定义事件:
function handler(){
// Do stuff
}
$('#content').on('insert', handler);
$.get( href , function(data){
$("#content").html(data).trigger('insert');
});
最后一个选项似乎对你最好。