Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   динамическое создание click (https://javascript.ru/forum/jquery/18874-dinamicheskoe-sozdanie-click.html)

kPaha2 19.07.2011 10:22

динамическое создание click
 
получаю из БД таблицу, из которой формируются дивы, на каждый надо повесить слушатель click, но у меня работает только последний =(

for (var i in ret[1]){
if(ret[1][i]) display_item(ret[1][i]['id'], ret[1][i]['task']);
}

function display_item(id, task){
document.getElementById('wrap').innerHTML += "<div id='item" + id +"'><a onclick=edit_item(\"" + id + "\")>" + task + "</a> <a href=\"#\" id='itemdel" + id + "'>X</a></div>";
$("#itemdel" + id).click(function (e){
//...
});
}

nikita.mmf 19.07.2011 10:52

function display_item(id, task){
  var wrap = document.getElementById('wrap');
  var div = document.createElement("div");
  div.id = "item"+id;
  div.innerHTML = "<a onclick='edit_item(\"" + id + "\")'>" + task + "</a><a href=\"#\" id='itemdel" + id + "'>X</a>";
  wrap.appendChild( div );
  div = null;
  $("#itemdel" + id).click(function (e){
  //...	
  });
}

kPaha2 19.07.2011 11:02

помогла замена document.getElementById('wrap').innerHTML += "<div id='item" + id +"'><a onclick=edit_item(\"" + id + "\")>" + task + "</a> <a href=\"#\" id='itemdel" + id + "'>X</a></div>"; на $("#wrap").append("<div id='item" + id +"'><a onclick=edit_item(\"" + id + "\")>" + task + "</a> <a href=\"#\" id='itemdel" + id + "'>X</a></div>");

kobezzza 19.07.2011 11:22

Делегирование событий и будет вам счастье!


Часовой пояс GMT +3, время: 20:30.