Прошу прощения, это может быть длиннее, чем ожидалось ...
Примечание: все слушатели делегированы в "тело" и все инициированные события также находятся в "теле".
Намеченный поток загрузки на странице
- Создать селектор с идентификатором # selectorA
- Зарегистрировать прослушиватель для измененного значения #selectA (listener1), который срабатывает ("aChanged")
- Если условие X, зарегистрируйте прослушиватель для aChanged, который перезагружает родительскую страницу (listener2)
- Зарегистрируйте прослушиватель для aChanged, который применяет изменения CSS к #selectorA (listener3)
Предполагаемый поток при изменении
- Обновления пользователя #selectA value -> $ .trigger ("aChanged")
- listener1 слышит aChanged -> Если условие, то перезагрузить всю страницу
- listener2 слышит aChanged -> $ .load () div на странице
- listener3 слышит aChanged -> обновить некоторые классы css элемента #selectA (не элементы), только их css)
Мое намерение состоит в том, что если он-чанШаг 2 e-flow перезагружает всю страницу, другие слушатели могут делать все, что они захотят - или потерпеть неудачу, мне все равно, потому что страница перезагружается в любом случае.Я предполагаю, что если страница перезагружается, другие слушатели не могут повлиять на div / CSS загружаемой / недавно загруженной страницы.
Моя проблема
Иногда, но непоследовательно редко, при переключении #selectA между двумя или более параметрами, которые удовлетворяют условию X (условие перезагрузки страницы), слушатели прекращают прослушивание - или событие aChanged не вызывается.
При входе вконсоль Я заметил, что каждый раз, когда слушатели собираются потерпеть неудачу (когда они зарегистрированы, прежде чем ничего не слышат), что меняется порядок loadPage - registerAllListeners, и вместо журналов консоли, приходящих со страницы индекса, они приходят из VMxyzидентификатор (инструмент разработчика chrome «этот скрипт не связан с URL»).Если произойдет сбой, большинство журналов консоли «регистрирующий прослушиватель» поступают до журнала chrome «Navigated to https: // ...» - все эти журналы поступают из идентификатора VMxyz.
Мой вопрос (ы)
- Я вроде понимаю идентификатор VMxyz инструментов разработчика Chrome, но я мог бы использовать справку, чтобы понять, почему - иногда - эти операторы console.log () берутся изфактическая страница и почему они иногда приходят из VMxyz.
- Я не могу понять, почему слушатели иногда перестали работать.Мне кажется, что даже если бы страница действительно перезагружала действие среднего слушателя, страница все равно просто создала бы новых слушателей.
- Если у кого-то есть рекомендации о том, как я мог бы далее отладить это или полностью исправить это (пожалуйста) Буду признателен.