0

私は単純なアプリケーションを使用しており、単純化のために(多分少し学ぶために)ajaxを使用してレベルをロードすることにしました。

しかし、私は立ち往生しています...

$.ajax({
    url: "actions.php",
    get: "GET",
    data: "show_level=" + 1,
    cache: false,
    success: function (views){
        $(".slides_container").append(views);
    }
});

問題は、コンテナに追加されたビューが選択できなくなったことです。基本的に、すべてのjquery関数が一緒に機能しなくなりました。

何が起こっている?

4

2 に答える 2

2

バインディングを使用している$(".target-element").click(function(){ do something here});場合は、バインディングが発生したときにDOMにすでに存在する要素に対してのみ有効です。

あなたは使用する必要があります$("#element-already-in-dom").on("click", ".target-element", function(){do something here});

于 2013-03-25T13:09:00.917 に答える
0

あなたはイベント以外のバブリングの犠牲者です。

イベントを要素にバインドする場合、通常はウィンドウの読み込み時にこれを行います。ウィンドウの読み込み後に要素がDOMに追加された場合、イベントハンドラーによってレイアウトされた他のすべての条件を満たすにもかかわらず、イベントはその要素にバインドされません。

代わりに、委任を使用する必要があります。これは、イベントがページ上の変更されていない要素にバインドされてから、正しい要素にバブルアップすることを意味します。

$('.appended-view').click(function(event) { ... }

動作しないでしょう

$('body').on('click', '.appended-view', function(event) { ... } 

動作します

于 2013-03-25T13:10:25.233 に答える