Справочник API

event.isImmediatePropagationStopped() в jQuery

Содержание статьи
  • Категории: Events › Event Object

    Позволяет определить, был ли вызван метод event.stopImmediatePropagation(), предотвращающий всплытие объекта события и запуск последующих обработчиков

Синтаксис и описание:

  • Добавлено в jQuery 1.3event.isImmediatePropagationStopped()

  • Метод event.isImmediatePropagationStopped() сообщает, вызывался ли для текущего объекта события метод event.stopImmediatePropagation(). До его вызова возвращает false, после — true.

  • Используется редко и обычно внутри инфраструктурного кода — плагинов или систем логирования событий, которым нужно узнать, остановлена ли дальнейшая обработка события, не влезая в логику самого обработчика.

Возвращаемое значение: (логическое) true или false.

  1. Примечание:

    Не путайте с event.isPropagationStopped(): тот отвечает за обычный stopPropagation() (остановка всплытия), а этот — именно за stopImmediatePropagation() (всплытие плюс остальные обработчики на этом же элементе).

  2. В jQuery 3.x и 4.0:

    Метод работает без изменений. У нативного Event метода с таким же названием нет — состояние «immediate propagation stopped» браузер снаружи не раскрывает, это внутренняя учётная информация jQuery.

Примеры:

  1. Смотрим на состояние до и после вызова stopImmediatePropagation():

    $( "button" ).on( "click", function ( event ) {
      console.log( "до:", event.isImmediatePropagationStopped() ); // false
      event.stopImmediatePropagation();
      console.log( "после:", event.isImmediatePropagationStopped() ); // true
    } );
  2. Вспомогательная функция логирует, остановлена ли обработка, не зная деталей конкретного обработчика:

    function logPropagationState( event ) {
      if ( event.isImmediatePropagationStopped() ) {
        console.log( "Дальнейшие обработчики не выполнятся" );
      }
    }
    
    $( "#panel" ).on( "click", ".btn", function ( event ) {
      event.stopImmediatePropagation();
      logPropagationState( event );
    } );

[ наверх ]

Вопросы и ответы

Для чего используется event.isImmediatePropagationStopped() в jQuery?

Позволяет определить, был ли вызван метод event.stopImmediatePropagation(), предотвращающий всплытие объекта события и запуск последующих обработчиков

Поиск по материалам

Начните вводить — поиск работает по заголовкам и тексту.

Esc — закрытьВсе материалы →