Когда можно использовать метод jQuery isImmediatePropagationStopped ()? - PullRequest
2 голосов
/ 04 ноября 2010

В какой ситуации использовать jQuery isImmediatePropagationStopped метод?Пример на их странице документации не помогает.

1 Ответ

2 голосов
/ 04 ноября 2010

Если вы оказались в ситуации с несколькими .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().Конечно, есть и другие примеры, но с такими ситуациями вы, скорее всего, столкнетесь при обычном использовании.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...