2014-01-29 2 views
1

Мне нужна помощь в jQuery с ".remove". Я создаю новый «TR» в таблице с «.append»jQuery .remove удалить все "tr"

$("#myinput").keypress(function(e){ 
    if(e.keyCode==13){ 
     $('#mytable tbody:last').append("<tr><td></td><td><a id='delete' href='' >X</a></td></tr>"); 
     return false; 
    } 
}); 

Когда я добавляю много „тр“ и я стараюсь, чтобы удалить один из них, это удалить все „тр“.

$("#mytable #delete").on("click",function() { 
    $(this).closest("tr").remove(); 
    return false;    
}); 

Что я могу сделать? Спасибо :)

ответ

0

Для динамически добавленных элементов требуется делегирование событий. Время, когда код привязки события выполняет tr, отсутствует, и использование делегирования событий свяжет событие при добавлении tr.

$("#mytable").on("click", "#delete", function() { 
    $(this).closest("tr").remove(); 
    return false;    
}); 

делегированного событие имеет то преимущество, что они могут обрабатывать событие от потомков элементов, которые добавляются к документу в более позднее время. К выбор элемента, который гарантированно присутствует в момент присоединения делегированного обработчика , вы можете использовать делегированные события , чтобы избежать необходимости часто прикреплять и удалять обработчики событий, jQuery doc.

+0

Спасибо, adil, это работа! Я новичок в jQuery ... – francisbbelisle

+0

Добро пожаловать и добро пожаловать в SO, http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work – Adil

Смежные вопросы