Имеется элемент, после нажатия на который появляется дополнительный блок. Этих элементов много и подгружаются они через ajax (использовал плагин). Скрипт работает только на элементах которые изначально загружены на странице. Если я правильно понял, то скрипт просто не видит новые элементы... Как исправить?
lemme:
Может я не так выразился и вы меня не поняли, ну или я туплю :D
Нажимаем на i.fa-bars и появляется .top_navigation. Если в базе имеется еще блок с i.fa-bars, то он подгружается, но скрипт его походу не видит, т.к. новый top_navigation не хочет появляться
Василий Петров: codepen.io/anon/pen/vxMBmW еще раз скину ссылку с примером (строки element #1 и.т.д) кликабельны. Я могу, конечно, поправить код, но, в этом не будет смысла, если не понять как это работает.
Если Вы хотите сами понять и разобрать - это даже хорошо. Попробую объяснить.
В Вашем коде обработчик вешается на конкретно на .menu i.fa-bars, соответственно при добавлении новых таких элементов страница уже загружена и обработчики висят только на тех, что были при загрузке страницы.
Здесь же$('.menu').on('click', 'i.fa-bars', function(){ обработчик вешается на элементы .menu и грубо говоря ему все равно сколько внутри лежит элементов, только при клике внутри .menu он проверяет срабатывать обработчику или нет сверяя 2 параметр у (on()) с элементом, по которому был сделан клик