Ajax加载页面内的Jquery不起作用

时间:2013-09-26 13:23:40

标签: ajax jquery

当我使用

$('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);
    },
});

3 个答案:

答案 0 :(得分:1)

你在$('body')之前附加的事件.html(data1)不会因为先前身体中的元素不再存在而触发。

您必须重新附加事件或使用.on()方法并将事件直接附加到文档。

答案 1 :(得分:0)

在附加事件处理程序时,更好地使用jQuery live函数。 请参阅:http://api.jquery.com/live/

答案 2 :(得分: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();

    }
});

希望这有帮助!