日期:2014-05-16  浏览次数:20599 次

通过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(){
。。。
})