event.stopImmediatePropagation()Возвращает: undefined
Описание: Предотвращает выполнение остальных обработчиков и не позволяет событию подниматься вверх по дереву DOM.
-
версия добавлена: 1.3event.stopImmediatePropagation()
- Этот метод не принимает никаких аргументов.
Помимо предотвращения выполнения дополнительных обработчиков на элементе, этот метод также останавливает распространение, неявно вызывая event.stopPropagation(). Чтобы просто предотвратить распространение события на родительские элементы, но позволить другим обработчикам событий выполняться на том же элементе, можно использовать event.stopPropagation() вместо этого.
Используйте event.isImmediatePropagationStopped() чтобы узнать, был ли этот метод когда-либо вызван (для данного объекта события).
Дополнительные заметки:
- Поскольку метод
.live()обрабатывает события после их распространения до вершины документа, остановить распространение событий live невозможно. Аналогично, события, обрабатываемые.delegate()будут распространяться на элементы, которым они делегированы; обработчики событий, привязанные к любым элементам ниже в дереве DOM, уже будут выполнены к моменту вызова делегированного обработчика событий. Поэтому эти обработчики могут предотвратить срабатывание делегированного обработчика, вызвавevent.stopPropagation()или вернувfalse.
Пример:
Препятствует вызову других обработчиков событий.
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>event.stopImmediatePropagation demo</title>
<style>
p {
height: 30px;
width: 150px;
background-color: #ccf;
}
div {
height: 30px;
width: 150px;
background-color: #cfc;
}
</style>
<script src="https://code.jquery.com/jquery-3.7.0.js"></script>
</head>
<body>
<p>paragraph</p>
<div>division</div>
<script>
$( "p" ).on( "click", function( event ) {
event.stopImmediatePropagation();
});
$( "p" ).on( "click", function( event ) {
// This function won't be executed
$( this ).css( "background-color", "#f00" );
});
$( "div" ).on( "click", function( event ) {
// This function will be executed
$( this ).css( "background-color", "#f00" );
});
</script>
</body>
</html>