我正在根据我从AJAX收到的数组中的数字项创建一堆Div。所有div都有一个唯一的ID,我想为每个生成的Div添加一个Click事件。 我希望用户点击其中一个生成的div,然后发布一些数据。 这是我使用的代码,但它不起作用。
c=data.length
for(i=0;i<c;i++){
$('#result').prepend('<div class="validation" id="lv_'+i+'">'+data[i]+'</div> ');
$("#lv_"+i).live('click', function(data){
.$post("setLocation", {lv: lv}, function(data){
alert(data);
});
});
}
答案 0 :(得分:1)
要在具有类validation
的所有div上触发某个事件处理程序,无论是否动态添加,您最好使用on
$(document).on("click", ".validation", function() {} );
如果您使用的是旧版本的jQuery,请按以下步骤操作:
$(".validation").live("click", function() {} );
或者,live
优于delegate
$(document).delegate(".validation", "click", function() {} );
delegate
和on
优于live
的原因是live
将通过现有的dom,并将相关处理程序附加到所有已发现的元素。 delegate
和on
只是监听事件冒泡,并在选择器匹配时触发处理程序。因此,delegate
和on
的效果更高。
答案 1 :(得分:0)
尝试:
$("#lv_"+i).on("click", {lv: lv}, function(data))