У меня есть несколько ссылок, и я хочу, чтобы что-то произошло, когда я нажимаю на ссылку. Однако я создаю эти элементы с помощью .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, ничего не происходит. Кто-нибудь может объяснить, почему?

1
user11299199 26 Окт 2019 в 14:21

2 ответа

Лучший ответ

Так как dom-элемент не существует при разборе, вы должны привязать событие к элементу, который уже существует, например, к документу:

$(document).on('click', '.ClickTools',function(){ console.log(123) });

Также вам не нужна точка (.) При добавлении и установке имени класса (исправлена также пропущенная кавычка)

$("#appender").append('<a class="ClickTools">click on me</a>');
0
john Smith 26 Окт 2019 в 11:26

Сделайте это так:

$('<a>click on me</a>').appendTo('#appender').click(function(){alert(1);});

Использование appendTo позволит вашему созданному объекту быть возвращенным последним, поэтому вы можете напрямую добавить к нему событие щелчка.

1
JulienCC 26 Окт 2019 в 11:34
58570291