Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery selectors 将单击添加到动态生成的divs Jquery_Jquery Selectors_Jquery - Fatal编程技术网

Jquery selectors 将单击添加到动态生成的divs Jquery

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

我正在根据从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);
                });
            });

        } 
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.7
live()
时,不推荐使用
on()
。虽然这并不能解决您的具体问题,但值得调查。很酷,我不知道我会调查it@rzclfy-当然可以!如果您使用的是jQuery 1.7之前的版本,那么委托就是最好的选择