Использовать событие делегата, например on
для версии 1.7 +
$('body').on('change', '#chapters-select', function(){
alert('changed');
});
Чтобы повысить производительность вместо body
, вы должны написать ближайший статический (не добавленный динамический с ajax или javascript) элемент, содержащий "chapters-select
Если вы используете более старую версию jQuery
, выберите соответствующий метод из следующей таблицы:
$(selector).live(events, data, handler); // jQuery 1.3+
$(document).delegate(selector, events, data, handler); // jQuery 1.4.3+
$(document).on(events, selector, data, handler); // jQuery 1.7+
on
документы:
Когда предоставляется селектор, обработчик события называется делегированным. Обработчик вызывается не тогда, когда событие происходит непосредственно в связанном элементе, а только для потомков (внутренних элементов), которые соответствуют селектору. jQuery переносит событие от цели события до элемента, к которому прикреплен обработчик (т. е. от самого внутреннего к крайнему элементу), и запускает обработчик для любых элементов на этом пути, соответствующих селектору.
Обработчики событий привязываются только к выбранным в данный момент элементам; Oни
должен существовать на странице в тот момент, когда ваш код вызывает .on ().
Чтобы убедиться, что элементы присутствуют и могут быть выбраны, выполните событие
привязка внутри обработчика готовых документов для элементов, которые находятся в
HTML-разметка на странице. Если новый HTML вводится на страницу,
выберите элементы и прикрепите обработчики событий после того, как новый HTML
размещены на странице. Или используйте делегированные события, чтобы прикрепить событие
обработчик, как описано далее.