Jquery each()添加事件处理程序

Jquery each()添加事件处理程序,jquery,json,iteration,each,Jquery,Json,Iteration,Each,我对jQuery中的.each()函数有一个问题,当我成功获取Ajax并将其存储在数据变量中时,我会调用以下代码行: $.each(data, function() { $('#modulesList').append("<p><a href='#'>" + this.code + "</a></p>") .click(function(){ alert($(this)); }); }); $。每个(数据、函数(){ $(“#模

我对jQuery中的.each()函数有一个问题,当我成功获取Ajax并将其存储在数据变量中时,我会调用以下代码行:

$.each(data, function() {
$('#modulesList').append("<p><a href='#'>" + this.code + "</a></p>")
  .click(function(){
    alert($(this));
   });
});
$。每个(数据、函数(){
$(“#模块列表”)。追加(“

”) 。单击(函数(){ 警报($(本)); }); });
问题是,一旦我点击其中一个a元素(这些元素看起来都很好,并且有正确的文本),我会为每个元素弹出5次警报。从JSON中的0到5个对象进行迭代

有人知道为什么吗


谢谢

使用
appendTo
方法

$("<p><a href='#'>" + this.code + "</a></p>").appendTo('#modulesList')
  .click(function(){
    alert($(this));
   })
希望你能看到它是如何工作的…

也许你可以试试这个

$.each(data, function() {
$('#modulesList').append("<p><a href='#'>" + this.code + "</a></p>");

});

$('#modulesList p').click(function(){
    alert($(this));
   });
$。每个(数据、函数(){
$(“#modulesList”)。追加(“

”); }); $(“#模块列表p”)。单击(函数(){ 警报($(本)); });
虽然这提供了所需的功能,@AndreasAL的解决方案更好,因为它不会让jQuery重新找到附加元素。感谢您的帮助AndreasAL,我今天早上找到了它出现5次的原因,但仍然不知道如何修复它,它现在工作得很好!
$.each(data, function() {
$('#modulesList').append("<p><a href='#'>" + this.code + "</a></p>");

});

$('#modulesList p').click(function(){
    alert($(this));
   });