Справочник API

event.isPropagationStopped() в jQuery

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

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

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

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

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

  • Полезен в делегированных обработчиках и плагинах, когда нужно узнать, не остановил ли уже кто-то всплытие события, прежде чем принимать решение самому.

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

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

    Отличие от event.isImmediatePropagationStopped(): этот метод проверяет только факт остановки всплытия (stopPropagation()), а не остановку остальных обработчиков на том же элементе (stopImmediatePropagation() дополнительно взводит и этот флаг тоже, так как она включает в себя остановку всплытия).

  2. В jQuery 3.x и 4.0:

    Метод работает без изменений. Нативного аналога с точным поведением нет; ближе всего свойство event.cancelBubble, но оно устарело и его использовать не стоит — в обычном коде на чистом JS факт остановки всплытия никак не проверяется, за это отвечает сам вызывающий код.

Примеры:

  1. Проверка состояния до и после вызова stopPropagation():

    $( "button" ).on( "click", function ( event ) {
      console.log( event.isPropagationStopped() ); // false
      event.stopPropagation();
      console.log( event.isPropagationStopped() ); // true
    } );
  2. Делегированный обработчик учитывает, что вложенный обработчик уже остановил всплытие:

    $( "#list" ).on( "click", "li", function ( event ) {
      if ( event.isPropagationStopped() ) {
        return;
      }
      console.log( "Клик по пункту списка" );
    } );
    
    $( "#list .close" ).on( "click", function ( event ) {
      event.stopPropagation();
    } );

[ наверх ]

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

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

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

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

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

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