У меня есть элемент с атрибутом title
(т. Е. Всплывающая подсказка), завернутый в какой-то контейнер:
<div id="foo">
<input type="text" title="A tooltip" />
</div>
и я прикрепляю слушатель события "mousemove"
к контейнеру и прекращаю распространение события:
document.getElementById('foo').addEventListener(
'mousemove',
function(e) { e.stopPropagation() },
false
)
Эта комбинация остановки распространения «движений мыши» на контейнере теперь предотвращает отображение всплывающей подсказки для внутреннего текстового поля, в Firefox 2 и выше. Я пробовал FF 2 [.0.0.20], 3 [.0.11] и последнюю версию 3.5 (Windows Server 2003, XP).
В качестве быстрого упражнения пользователи Firefox могут увидеть эту ошибку в действии, выполнив следующую эквивалентную логику, как указано выше в адресной строке:
javascript:void($('div.vote').mousemove(function(e){ e.stopPropagation() }))
Теперь наведите указатель мыши на любой из значков "вверх", "вниз" или "звездочка" (избранное) для этого вопроса. Всплывающие подсказки больше не появляются. Опять же, только в Firefox .
У кого-нибудь есть обходной путь для этого поведения / ошибки в Firefox? Кто-нибудь еще был свидетелем этого?
Обновление : Похоже, что Firefox использует «остановку мыши» для вызова всплывающих подсказок в браузере Chrome (например, кнопки «назад» / «вперед»). См. https://bugzilla.mozilla.org/show_bug.cgi?id=82953. Однако я не могу сказать, влияет ли это на DOM.
Обновление : похоже, Firefox 10 был последней версией, демонстрирующей такое поведение. Firefox 11.0 и более поздние версии отображают всплывающие подсказки независимо от распространения событий.
Обновление : Firefox 33 (.1) больше не демонстрирует это поведение.