当我使用
时$('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);
},
});
答案 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();
}
});
希望这有帮助!