Javascript событие отказывается умирать - PullRequest
1 голос
/ 06 июля 2011

У меня есть страница, на которой два разных слушателя событий выбирают события кликов внутри страницы.Один слушатель является общим для сайта, другой - для конкретной страницы.Недавно была добавлена ​​ссылка, которая проходит через первый обработчик, который обрабатывает его, открывает URL-адрес в новом окне и затем останавливает событие.Проблема в том, что второй обработчик затем выполняется, снова останавливает событие, и каким-то образом событие продолжается и выполняется.

У меня есть stopPropagation и cancelBubble, оба выполняющиеся для этого события.Когда он прибывает во второй обработчик, у него есть запрещенное поле, которое установлено в true, но все же оно продолжается.Единственный способ остановить это - поставить проверку во второй обработчик, который пропускает свой код, если событие приходит с предотвращенным значением true.

Мой вопрос: почему это вообще произошло?Почему не работает stopPropagation?Кстати, это происходит во всех браузерах.

Ответы [ 2 ]

1 голос
/ 06 июля 2011

Полагаю, вы пытаетесь остановить событие на том же элементе.Вы пытались использовать метод stopImmediatePropagation?

0 голосов
/ 06 июля 2011

Как правильно прокомментировал Сэмюэль Лев, добавление return false; в конец вашего первого обработчика событий может помочь. Это связано с тем, что некоторые браузеры игнорируют .stopPropagation() (однако другие игнорируют возвращаемый результат)

...