Если вы оказались в ситуации с несколькими .live()
событиями, например, вы бы хотели .stopImmediatePropagation()
, затем отметьте это в следующем обработчике, так как выуже всплыл до того же элемента.Давайте возьмем живой пример:
$("a").live("click", function(e) {
alert("Handler 1");
e.stopImmediatePropagation();
}).live("click", function(e) {
alert("Handler 2");
});
Вы можете проверить это здесь - обратите внимание, что оба оповещения все еще срабатывают.
Даже если мы немедленно прекращаем распространение, мы 'Для прослушивания на уровне это не имеет значения, поэтому нам действительно нужно проверить это:
$("a").live("click", function(e) {
alert("Handler 1");
e.stopImmediatePropagation();
}).live("click", function(e) {
if(e.isPropagationStopped()) return;
alert("Handler 2");
});
Вы можете проверить это здесь - только первое срабатывание оповещения, желаемый результат.В зависимости от вашего порядка событий такая же ситуация происходит с .delegate()
.Конечно, есть и другие примеры, но с такими ситуациями вы, скорее всего, столкнетесь при обычном использовании.