Значит история такая:
У меня страницы подгружаются ajax-ом. Вместе со страницей подгружаются javascript-ы и css-ки.
То есть когда пользователь нажимает < a > с href=/filter, то не вся страница обновляется, а подгружается только контент страницы со скриптами которые относятся только к этой странице.
Но! У меня в javascript есть события прописанные вот так: $(document).on('click','.buttons',function(){});
Получается, что если пользователь еще раз нажимает на ссылку /filter, то html-код обновляется, скрипт подгружается еще раз, создается еще один обработчик и теперь если кликнуть на .buttons, то событие срабатывает два раза.
Можно как-то удалить все обработчики .on загруженные в память?
Сразу скажу, что .off() - это не то что нужно. он удаляет событие с определенного элемента, хотя событие в системе остается работать.
>> "скрипт подгружается еще раз, создается еще один обработчик"
навешивать повторно - плохой ход. Нужно или выставлять флаг "уже навешено" или вообще убрать такое поведение.
Михаил Гаврилюк, я просто в итоге родителя прописываю не body, а какой-то div, внутри которого нужно отловить события. И если этот родитель удаляется со страницы, то события отменятся.