Существует два способа использования .on()
, и вы используете неправильный тип.
Вы можете привязать обработчики событий непосредственно к элементам, используя $('selector for elements you want the event handler bound to').on('event', function() {...});
Или вы можете делегировать события, вызывая .on()
для элемента-оболочки, который будет содержать все динамически добавленные элементы, такие как div или, в худшем случае, элемент <body>
. Код будет выглядеть примерно так:
<div id="wrapper">
<a href="#" class="link">Test link</a>
</div>
$('#wrapper').on('click', '.link', function(e) {
// code to handle the click event on the link here
});
Обработчик события фактически обрабатывается элементом <div id="wrapper">
после того, как событие всплыло до него, но функция вызывается только в том случае, если исходная цель соответствует предоставленному селектору. С помощью этого метода вы можете динамически добавлять дополнительные элементы с классом link
в div, и функция также будет запускаться при нажатии на них.