Jquery selectors 将单击添加到动态生成的divs Jquery
我正在根据从AJAX接收到的数组中的项目数创建一组div。所有的div都有一个唯一的Id,我想为每个生成的div添加一个Click事件。 我希望用户点击其中一个生成的div,然后发布一些数据。 这是我使用的代码,但它不起作用Jquery selectors 将单击添加到动态生成的divs Jquery,jquery-selectors,jquery,Jquery Selectors,Jquery,我正在根据从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
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);
});
});
}
c=data.length
对于(i=0;i要在所有具有类验证
的div上触发特定的事件处理程序,无论是否动态添加,理想情况下都应该使用on
$(document).on("click", ".validation", function() {} );
如果您使用的是较旧版本的jQuery,下面是使用live时的操作方法:
$(".validation").live("click", function() {} );
或者,比live
更好的是delegate
$(document).delegate(".validation", "click", function() {} );
delegate
和on
优于live
的原因是live
将遍历现有dom,并将相关处理程序附加到所有发现的元素。delegate
和on
只需侦听冒泡的事件,并在选择器匹配时触发处理程序。因此,委托
和
上的更有效。尝试:
$("#lv_"+i).on("click", {lv: lv}, function(data))
$(“#lv#”+i).on(“单击”{lv:lv},函数(数据))
使用jQuery 1.7live()
时,不推荐使用on()
。虽然这并不能解决您的具体问题,但值得调查。很酷,我不知道我会调查it@rzclfy-当然可以!如果您使用的是jQuery 1.7之前的版本,那么委托就是最好的选择