@Ambrel

Создаю кнопку через jQuery, ajax?

У меня появилась одна проблемка. Я создаю кнопку через jQuery. И даю ему class="test". И при клике на .test у меня не выходит alert. Как исправить ?

$('.test').on('click', function(e) {
		alert('test');
	});

function createPagination(pagination) {
	$('.table-results').append('<tr>\
		<td scope="row" colspan="18"><button class="test">test</button></td>\
	</tr>');
}
  • Вопрос задан
  • 51 просмотр
Решения вопроса 2
@Eugeny1987
Работаю с HostCMS
на момент навешивания события элемента с классом test не существует
$('body').on('click', '.test', function(e) {
    alert('test');
  });
Ответ написан
Комментировать
Vlad_IT
@Vlad_IT Куратор тега JavaScript
Front-end разработчик
Это по той причине, что событие привязывается к существующим элементам, а к новым нет. Выхода 2
1) Привязывать клик к корневому элементу, который не удаляется/добавляется.
$('.table-results').on('click', '.test', function(e) {
    alert('test');
  });

2) При создании элемента, сразу привязывать к нему событие.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
BRAGA96
@BRAGA96
Лучший вариант это
$('.table-results').on('click', '.test', function(e) {});

Еще вы можете возвращать только что созданный элемент и вешать на него событие. Пример
$('#create').on('click', function() {
	$(this)
	.after('<button class="test">Test</button>')
	.next('.test')
	.on('click', function() {
		alert('CLICK');
	});
});
Ответ написан
Комментировать
@Ambrel Автор вопроса
Вот например: https://jsfiddle.net/jm78xsze/
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы