ARW*_*ARW 1 javascript ajax jquery
我有一个问题,在通过AJAX动态填充元素后,我的jQuery函数不能处理新内容.
我有一个文件列表,例如在点击"刷新"按钮时填充的文件.双击列表中的项目时,我想显示带有文件名的警报.每个项目都有"文件"类.
我正在使用此代码:
$('.file').on('dblclick', function(event){
alert($(this).html());
});
Run Code Online (Sandbox Code Playgroud)
这适用于首先存在的任何元素,但不适用于AJAX调用之后.
这是一项学校作业,我需要使用常规的Javascript AJAX方法,而不是内置的jQuery AJAX功能.我猜这是问题以及jQuery没有注意到新填充的元素的原因.
刷新按钮正在调用此函数:
function getFileList()
{
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
document.getElementById("files").innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open("GET","filelist.php",true);
xmlhttp.send();
}
Run Code Online (Sandbox Code Playgroud)
如果我被迫使用常规JS进行AJAX调用而不是jQuery的AJAX方法,我怎样才能让jQuery正确地注意到这些新元素呢?
小智 9
问题是你只是将.on()附加到最初存在的".file"元素.您只需将.on()附加到文档并提供选择器作为选项.例如
$(document).on('dblclick', '.file', function(event){
alert($(this).html());
});
Run Code Online (Sandbox Code Playgroud)
这样,事件将附加到类"文件"的未来元素.