通过ajax重构了一个div里面的标签后,之前对该div里面标签做的事件、比如点击事件等全部失效,求解决办法
源代码:
$("#filelist").empty();
$("#btnshare").css("display","none");
$("#btnps").css("display","");
$.post("select.do?hava=1",function(data,status){
if(data.fls!=null){
var str = "<ul style='list-style-type: none'>";
$.each(data.fls,function(i,file){
str += "<li><div id='div_content' >";
str += "<input type='hidden' name='fileName' value="+ file.fileName +" />";
str += "<input type='hidden' name='uid' value="+ file.uid +" />";
str += "<input type='hidden' name='fileId' value="+ file.fileId +" />";
str += "<div id='div_img' name='div_img'>";
str += "<img src="+ file.imgUrl +" />";
str += "</div>";
str += "<div id='div_title'>";
str += "<span>"+ file.fileName +"</span>";
str += "</div></div></li>";
});
str += "</ul>";
}
$("#filelist").append(str);
通过上述代码对ID为filelist的div里面的代码进行重构后,那么之前对ID为div_content这个元素做的点击事件都失效了。有什么解决办法吗?
上述代码就是通过ajax异步更新数据,每更新一次都会将filelist里面的标签重构一次
------解决方案--------------------
你之前是不是这样写的?
$('dom').click(function(){
...
})
改成这样试试
$('dom').live('click',function(){
。。。
})