динамическое создание 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, время: 02:19. |