В JQuery есть .on(), которые могут быть использованы в качестве:
$(document).on('click', '.foo', function() { /* ... */ });
Это прослушивает события щелчка на всех DOM-элементах с классом .foo
. Однако, это также прослушивает любые возможные элементы, добавленных в DOM позже, поэтому он не равен:
var elements = document.getElementsByClassName('foo');
for (var element in elements) {
element.addEventListener('click', function() { /* ... */ });
}
Как это сделать в простом JavaScript? Должен ли я использовать MutationObserver? Если да, то как? Если нет, то что?
Не смотря на источнике Jquery (который является «простым JavaScript»), я подозреваю, что это добавляет слушатель 'document' затем использует шипение, чтобы проверить, что источник событий соответствует селектору. –