Рассмотрим этот сценарий:
2 слегка отличающиеся страницы с 2 слегка отличающимися таблицами: user-table
и admin-table
.Оба реализуют нумерацию страниц.Давайте предположим, что
<div class="pager">
Pager implementation
</div>
Я присоединяю события к .pager
, к кнопкам с номерами страниц, и делаю это дважды в разных файлах.Каждый файл имеет свою реализацию пейджера (то есть вызывает другой контроллер).Сценарии включены в соответствующие страницы и загружаются после загрузки DOM.
user-table.js
$('.pager').on('click', '.page', function() {
$.get(...) //calling user-controller to get the results
};
admin-table.js
$('.pager').on('click', '.page', function() {
$.get(...) //calling admin-controller to get the results
};
Как-то это работает и не конфликтует.Что для меня нелогично.
Когда я перехожу на страницу пользователя, загружается user-table.js
.После того, как я нажимаю на номер страницы, событие запускается, и содержимое загружается.
Что происходит, когда я захожу на страницу администратора и делаю то же самое?Почему это работает?После навигации загружается второй скрипт и назначаются / делегируются новые события.Разве не должно быть конфликтов?События с предыдущей страницы / сценария «забыты»?Сценарии будут кэшироваться, и я снова ожидаю конфликтов, что не так.
Может ли кто-нибудь объяснить мне рабочий процесс или жизненный цикл события?Что происходит с существующими событиями после ухода со страницы?Я попробовал поискать в Google, но не смог найти ничего подходящего.