У меня есть несколько ссылок, и я хочу, чтобы что-то произошло, когда я нажимаю на ссылку. Однако я создаю эти элементы с помощью .append. Это мой код jQuery:
$(".ClickTools").click(function(){alert(1);});
Он не работает после .append, но работает, когда элемент уже есть (без добавления). Мне нужно, чтобы этот код работал, даже когда элемент был добавлен на страницу с добавлением
Это html-код:
<div id="appender"></div>
И это мой код добавления jQuery:
$("#appender).append('<a class=".ClickTools">click on me</a>');
Когда я нажимаю кнопку Click on me
, ничего не происходит. Кто-нибудь может объяснить, почему?
2 ответа
Так как dom-элемент не существует при разборе, вы должны привязать событие к элементу, который уже существует, например, к документу:
$(document).on('click', '.ClickTools',function(){ console.log(123) });
Также вам не нужна точка (.) При добавлении и установке имени класса (исправлена также пропущенная кавычка)
$("#appender").append('<a class="ClickTools">click on me</a>');
Сделайте это так:
$('<a>click on me</a>').appendTo('#appender').click(function(){alert(1);});
Использование appendTo позволит вашему созданному объекту быть возвращенным последним, поэтому вы можете напрямую добавить к нему событие щелчка.
Похожие вопросы
Новые вопросы
javascript
По вопросам программирования на ECMAScript (JavaScript / JS) и его различных диалектах / реализациях (кроме ActionScript). Включите все соответствующие теги в свой вопрос; например, [node.js], [jquery], [json] и т. д.