Предотвращение запуска событий при пузырьковании и при захвате в JavaScript - PullRequest
0 голосов
/ 15 января 2020

Можно ли предотвратить запуск событий при барботировании и захвате в JavaScript?

e.stopPropagation() - это не то, что я ищу.

В моем случае я хотел бы только прямое размытие окна, чтобы вызвать событие. Запуск события размытия в окне на каждом дочернем элементе управления размытия влияет на производительность. (Я полагаю, что это не связано с вопросом, но все же, чтобы избежать проблемы xyz, я упомяну, что я использую событие размытия в окне, чтобы проверить, что размытие произошло из-за щелчка iframe, и в случае, если это произошло, тогда Я запускаю некоторый код. То есть мне нужен способ прикрепления слушателя размытия к окну, чтобы слушатель размытия работал только при размытии окна, но не при его размытии дочерних элементов.)

Возможно, есть способ добавить слушатель события только к целевой фазе размытия окна? Или слушателя всегда будут вызывать в пузыре и при захвате, и этого невозможно избежать?

1 Ответ

1 голос
/ 15 января 2020

event bubbling путешествует от ребенка к родителю. Таким образом, это, по сути, захват событий, который вы хотите предотвратить.

Когда вы добавляете прослушиватель событий, используя

window.addEventListener("focus", callback, true/false)

Этот третий аргумент предлагает захват или всплывание. Так что, если вы просто сохраните его, false событие будет просто пузыриться, и так как окно является самым верхним элементом, оно не будет распространено ни к чему другому.

...