Не используется делегированная обработка событий для динамических элементов. Этот случай знаком многим, кто использует технологию Ajax. Пунктом выше, мы затронули тему DOM и доступностью элементов при загрузке страницы, но что делать, если элементы добавляются динамически и с ними нужно работать так же, как и со статичными? Вот тут на помощь приходит делегированная обработка событий. Синтаксис:

  $('static_parent').on('event', 'dinamic_child', handler);
  static_parent - статичный родительский элемент
  event - событие
  dinamic_child - динамический дочерний элемент
  handler - функция-обработчик

К примеру, в каком-то блоке с классом «my_block», есть несколько ссылок с классом «my_link», при клике на которые, выполнялось какое-то действие. Все они изначально присутствовали при загрузке страницы. Теперь мы добавили еще несколько ссылок с таким же классом, но без делегированной обработки, они будут просто проигнорированы и нужное действие уже не выполнится. Для того, чтоб событие обрабатывалось и на старых, и на новых ссылках, нам нужно записать так:

  $('.my_block').on('click', '.my_link', function(){
      // действия при клике
  });

! При чём, объект $(this) внутри обработчика - это именно ссылка «.my_link», на которой событие было вызвано, а не родительский элемент «.my_block», как это бы было при обычной записи, а не делегированной. Старайтесь находить ближайший родительский статичный элемент, что ускорит работу кода. Хотя, в качестве такого, можно выбрать и body, и даже document.

http://incode.pro/jquery/chastye-oshibki-novichkov-pri-rabote-s-jquery.html

  // подгружаем модификации на основе модели
  $('#div_car_model').on('change', '.sel', function(){
  
  alert( "Handler for .change() called." );
  
  });