0

私が使うとき

$('body').html(data1)

また

$('html').html(data1)

AJAX では、読み込まれたページで HTML タグまたは jQuery 関数が機能しません。

$.ajax({
    type:"GET",
    dataType: 'html',
    url: 'hell.php',
    success : function(data1) {
        alert(data1);// will alert "ok"
        $('body').html(data1);
    },
});
4

3 に答える 3

1

$('body').html(data1) の前に添付したイベントは、以前に本文に含まれていた要素が存在しなくなるため、発生しません。

イベントを再度添付するか、.on()メソッドを使用してイベントをドキュメントに直接添付する必要があります。

于 2013-09-26T13:30:15.130 に答える
0

jQuery liveイベント ハンドラをアタッチするときは、関数をより適切に使用してください。参照: http://api.jquery.com/live/

于 2013-09-26T13:34:49.347 に答える
0

まず、ロードされた要素にアタッチする機能を関数で定義します。たとえば、次のようになります。

function attachEventsAfterAjax(){

    $('.aLoadedElement').on('click', function(){
        console.log('Yay!');
        return false;
    });

}

次に、新しいコンテンツを読み込んだ後、その関数を呼び出します。

$.ajax({
    [...],
    success: function(data){

        // Don't replace the <body> HTML, that's not a good idea
        // $('body').html(data);

        $('#container').html(data);
        
        // Now attach the functionality!
        attachEventsAfterAjax();

    }
});
于 2013-09-26T13:45:44.067 に答える