这是我的代码示例。我使用'setInterval'加载新内容。这导致我的点击处理程序无法触发。
ajax调用名为'content.php'的文件,该文件只包含:
<a class='my_link'>Something here</a>
这是我的页面:
<div id="content">
<a class='my_link'>Something here</a>
</div>
$(document).ready(function(){
$('.my_link').click(function() {
alert($(this).html());
return false;
});
function loadLog(){
var oldscrollHeight = $("#chatbox").attr("scrollHeight") - 20;
$.ajax({
url: "content.php",
cache: false,
success: function(html){
$("#content").html(html); //Insert chat log into the #chatbox div
var newscrollHeight = $("#chatbox").attr("scrollHeight") - 20;
if(newscrollHeight > oldscrollHeight){
$("#content").animate({ scrollTop: newscrollHeight }, 'normal'); //Autoscroll to bottom of div
}
},
});
};
setInterval (loadLog, 3000);
});
答案 0 :(得分:1)
由于您在$('.myLink').click(...
执行后添加了链接,因此没有附加“点击”处理程序。
您需要使用委托:
$(document.body).on('click', '.my_link', function(e){
alert($(this).html());
return false;
});
中详细了解代表