Делегирование событий не будет работать, если есть элемент, содержащий a.report-button
, который также имеет обработчик click
, и этот обработчик вызывает event.stopPropagation()
. Делегирование зависит от того, как событие всплывает в элемент, с которым вы связываете обработчик (document
в вашем случае). Когда событие достигает document
, jQuery проверяет, соответствует ли исходная цель a.report-button
, чтобы определить, должен ли выполняться обработчик.
stopPropagation()
прекращает пузыриться, поэтому событие никогда не достигает document
.
Решение состоит в том, чтобы привязать ваше событие к более близкому контейнеру, который находится внутри элемента, который останавливает распространение.
$("#container").on("click", "a.report-button", function(event) {
alert("Thx!");
});