Добавление прослушивателей событий к текущим и будущим элементам с определенным классом

Можно ли с помощью JQuery добавить прослушиватель событий к любому элементу, который в настоящее время, или будет в будущем , иметь конкретный класс?

Я работаю над проектом, в котором активно используется contentEditable, поэтому модель DOM меняется, и элементы могут иметь классы, добавляемые и удаляемые в результате ввода данных пользователем.

Я хотел бы иметь возможность сказать «элементы класса X должны выполнять Y при нажатии», но если я правильно понимаю, $ («. X»). Click (Y) добавит прослушиватель событий только к элементам, которые в настоящее время имеют класс X.

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

Как я могу это сделать?

26
задан sanity 10 December 2011 в 19:24
поделиться

1 ответ

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

$("#myWrappingElement").on("click", ".myclass", function(event){
    alert($(this).text());
});

это в основном добавляет прослушиватель события click к элементу #myWrappingElement, и jquery автоматически смотрит, чтобы увидеть, что оригинал Целью события было и срабатывание правильной функции. это означает, что вы можете добавлять или удалять элементы .myclass и при этом запускать события.

3
ответ дан 28 November 2019 в 07:24
поделиться
Другие вопросы по тегам:

Похожие вопросы: