添加单击以动态生成divs Jquery

时间:2011-12-05 01:48:53

标签: 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[i]+'</div> ');
                $("#lv_"+i).live('click', function(data){
                .$post("setLocation", {lv: lv}, function(data){
                    alert(data);
                });
            });

        } 

2 个答案:

答案 0 :(得分:1)

要在具有类validation的所有div上触发某个事件处理程序,无论是否动态添加,您最好使用on

$(document).on("click", ".validation", function() {} );

如果您使用的是旧版本的jQuery,请按以下步骤操作:

$(".validation").live("click", function() {} );

或者,live优于delegate

$(document).delegate(".validation", "click", function() {} );

delegateon优于live的原因是live将通过现有的dom,并将相关处理程序附加到所有已发现的元素。 delegateon只是监听事件冒泡,并在选择器匹配时触发处理程序。因此,delegateon的效果更高。

答案 1 :(得分:0)

尝试:

$("#lv_"+i).on("click", {lv: lv}, function(data))