2

当我单击 navMenu 中的链接时,我有以下代码将一些 html(包括锚点)加载到 div 中。当我逐步浏览它时,<p>'s它们是隐藏的,但是当页面最终出现时它们并没有隐藏。显示页面后,contentClickFunction 会按预期隐藏/显示<p>'s

我相信我需要“准备好”之类的东西,但要分配给 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();
    });
  });
4

1 回答 1

2

DOMready只触发一次。

您可以使用突变事件( DOMNodeInserted),但它们已被弃用。

您还可以创建自定义事件:

function handler(){
    // Do stuff
}

$('#content').on('insert', handler);

$.get( href , function(data){
    $("#content").html(data).trigger('insert');
});

最后一个选项似乎最适合您。

于 2012-05-29T06:53:32.510 回答