событие click не вызывается, когда родительский элемент предотвращает образование пузырьков - PullRequest
2 голосов
/ 24 февраля 2011

Я тестировал в нескольких современных браузерах с противоречивыми результатами.Я уверен, что это как-то связано с фиксированием различий в поддержке событий.Я настроил тестовую среду для репликации проблемы здесь: pastebin и использую этот сервис для запуска предварительного просмотра в реальном времени.

Проблема заключается в следующем: некоторые браузерыигнорировать событие щелчка якорной ссылки, когда предок предотвращает образование пузырей.Это не имеет смысла, потому что средний элемент будет запускать свое событие, прежде чем он начнет пузыриться, а якорный элемент - нет.Почему событие щелчка JavaScript работает, а событие href - нет?

Вот мои результаты, когда нажата кнопка «щелкни меня»:

Chrome 9.0.597.98 : hrefигнорируется + внутренняя и внешняя печатается

IE 8.0.6001.19019 : href работает + внутренняя и внешняя печатается

Firefox 3.6.13 :href игнорируется + inner и outter печатается

Итак, мой последний вопрос: как мне заставить href работать в кросс-браузерном режиме, когда элемент-предок предотвращает всплывающее событие?Любое понимание будет высоко ценится.

РЕДАКТИРОВАТЬ:

Я просто хотел бы отметить, что обсуждение продолжается в комментариях Пойнти, и я также хотел бы поблагодарить его за егоогромная помощь!

1 Ответ

3 голосов
/ 24 февраля 2011

Проблема в том, что это не

event.returnResult = false;

в IE, это:

event.returnValue = false;

Ссылка проходит через IE, потому что вы не правильно указываете браузеру не выполнять действие по умолчанию.

Если вы хотите, чтобы выполнялось действие по умолчанию, не вызывайте ".preventDefault ()" и не устанавливайте для returnValue значение false.

...