2

navMenu のリンクをクリックすると、いくつかの html (アンカーを含む) を div にロードする次のコードがあります。ステップスルーすると<p>'s非表示になりますが、ページが最終的に表示されたときに非表示にはなりません。ページが表示された後、contentClickFunction は<p>'s期待どおりに非表示/表示されます。

「準備完了」のようなものが必要だと思いますが、innerHtml に割り当てるためです。hide への呼び出しがオーバーライドされないようにリッスンできるイベントはありますか?

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は 1 回だけ起動します。

ミューテーション イベント( )を使用できますDOMNodeInsertedが、非推奨です。

カスタム イベントを作成することもできます。

function handler(){
    // Do stuff
}

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

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

最後のオプションがあなたにとって最良のようです。

于 2012-05-29T06:53:32.510 に答える