динамическое создание 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){ //... }); } |
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){ //... }); } |
помогла замена 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>");
|
Делегирование событий и будет вам счастье!
|
Часовой пояс GMT +3, время: 20:30. |