要做一个查看历史记录的页面,点击那条记录会显示出详情。ajax从服务器拿了记录信息的数据回来,就把记录循环然后appen出来。页面显示没问题,数据库有多少记录全部都显示出来了,但是,点击却该记录没反应。
有人说用unbind,有人说用live,有人说用on,但是试过都没用。后来终于知道问题在哪里了,原来每次循环出来的元素要触发事件是需要绑定的,所以,事件方法应该写在循环里面。
//循环出所有本月记录。data是服务器返回的数据,为数组。
var datamonth=data['last0data'];
$.each(datamonth, function(index, datamonth) {
var html= "<li"+" "+"id="+datamonth.sign_id+" "+" class='list-group-item' >"+
"<div class='item' style='font-size: 16px' >"+
"<div class='datetime' style='float: left;'>"+"<span class='glyphicon glyphicon-list' aria-hidden='true'>"+"</span>"+" "+datamonth.sign_datetime.substring(0,11)+"</div>"+
"<div style='float: right'>"+datamonth.user_name+"</div>"+
"<div style='clear: both;'>"+"</div>"+
"</div>"+"</li>";
$("#body").append(html);
$("#"+datamonth.sign_id).on("click",function(){
var sign_id=$("#"+datamonth.sign_id).attr("id");
var sign_datetime=$("#"+datamonth.sign_id).text().substring(1,11);
attendance_check.gettable_sign(sign_id,sign_datetime);
})
})