2014-09-12 2 views
-1

Моя функция:JQuery функция готова для новых элементов

jQuery('#allForms td.edit').click(function(e){ 
    e.preventDefault(); 
    addTextBox(jQuery(this)); 
}); 

не работает для новых элементов, которые я создаю таким образом:

var output = '<tr><td class="edit">'+values[0]+ 
    '</td><td class="edit">'+values[1]+ 
    '</td><td class="edit">'+values[2]+ 
    '</td><td class="edit">'+values[3]+ 
    '</td><td><a href="#" class="deleteForm">USUŃ</a></td></tr>'; 
formsList.find('tr:last').after(output); 
addForm.find("input").val(''); 

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

+0

Вы можете использовать 'JQuery (документ) .На («нажмите кнопку» , '#allForms td.edit', function (e) {' – Regent

+0

Это дубликат так много вопросов. Пожалуйста, используйте поиск в следующий раз. – Nit

+1

@Nit тем не менее, люди все еще отвечают на него до того, как вопрос закрыт :) – Regent

ответ

0

Вы должны использовать делегирование событий для прикрепления события динамически добавляемые элементы:

jQuery('#allForms').on('click','td.edit',function(e){ 
e.preventDefault(); 
addTextBox(jQuery(this)); 
}); 
+0

Спасибо. Прекрасно работает. – user3669300

0

Вы должны попробовать это

jQuery(document).on("click", '#allForms td.edit', function(e){ 
Смежные вопросы