События динамично созданных кнопок
Добрый день, друзья!
Столкнулся с проблемой: события для динамично созданных объектов не работают
//info = [id, start, finish, time, distance, price];
//динамически создаю объекты
function echo(info) {
var i = 0;
var Form = document.getElementById('fms');
var Div = document.createElement('div');
Div.id = 'main';
Form.appendChild(Div);
var id = info[info.length-1];
while (info.length > 0 ){
i++;
var field = info.pop();
var Inner = document.createElement('input');
Inner.id = 'elem'+id+i;
Inner.name = 'elem'+id;
Inner.size = field.length;
Inner.value = field;
Div.appendChild(Inner);
}
var DeleteLink = document.createElement('input');
DeleteLink.type = 'button';
DeleteLink.value = 'Готово';
DeleteLink.id = 'DelBut';
DeleteLink.name = id;
Div.appendChild(DeleteLink);
}
События нужны по нажатию на кнопке с id='DelBut' при этом нужно получать значение из текущей нажатой кнопки, например name
//не работает
var elt = document.getElementById("DelBut");
elt.onclick = function() { console.log(this.name); }
//не работает
$("#DelBut").click(function () {
console.log('jr');
console.log($(this).text());
});
|
Цитата:
Решение: - навешивать события при создании - использовать делегирование событий |
Цитата:
Спасибо |
Используй метод .on() вместо .click(). (делегирование)
Либо создай какую нибудь универсальную функцию, которая навешивает твой обработчик на вновь создаваемые элементы |
Цитата:
http://api.jquery.com/on/ |
Спасибо, получилось повесить событие при создании элемента
DeleteLink.onclick = function (){//выполняемые действия};
Отличный форум, очень помогаете, ребята! |
быстрее клонировать элементы и лучше использовать fragment
а обработчик можно навесить на существующий родитель небольшой пример http://jsfiddle.net/vlasenkofedor/hyQnb/ |
| Часовой пояс GMT +3, время: 09:58. |