Справочник API
event.isImmediatePropagationStopped() в jQuery
Содержание статьи
-
Категории: Events › Event Object
Позволяет определить, был ли вызван метод event.stopImmediatePropagation(), предотвращающий всплытие объекта события и запуск последующих обработчиков
Синтаксис и описание:
Добавлено в jQuery 1.3event.isImmediatePropagationStopped()
Метод event.isImmediatePropagationStopped() сообщает, вызывался ли для текущего объекта события метод event.stopImmediatePropagation(). До его вызова возвращает
false, после —true.Используется редко и обычно внутри инфраструктурного кода — плагинов или систем логирования событий, которым нужно узнать, остановлена ли дальнейшая обработка события, не влезая в логику самого обработчика.
Возвращаемое значение: (логическое) true или false.
Примечание:
Не путайте с event.isPropagationStopped(): тот отвечает за обычный
stopPropagation()(остановка всплытия), а этот — именно заstopImmediatePropagation()(всплытие плюс остальные обработчики на этом же элементе).В jQuery 3.x и 4.0:
Метод работает без изменений. У нативного
Eventметода с таким же названием нет — состояние «immediate propagation stopped» браузер снаружи не раскрывает, это внутренняя учётная информация jQuery.
Примеры:
Смотрим на состояние до и после вызова
stopImmediatePropagation():$( "button" ).on( "click", function ( event ) { console.log( "до:", event.isImmediatePropagationStopped() ); // false event.stopImmediatePropagation(); console.log( "после:", event.isImmediatePropagationStopped() ); // true } );Вспомогательная функция логирует, остановлена ли обработка, не зная деталей конкретного обработчика:
function logPropagationState( event ) { if ( event.isImmediatePropagationStopped() ) { console.log( "Дальнейшие обработчики не выполнятся" ); } } $( "#panel" ).on( "click", ".btn", function ( event ) { event.stopImmediatePropagation(); logPropagationState( event ); } );