title
いくつかのコンテナーにラップされた、属性 (つまり、ツールチップ)を持つ要素があります。
<div id="foo">
<input type="text" title="A tooltip" />
</div>
コンテナーにイベント リスナーをアタッチし、"mousemove"
イベントの伝播を停止します。
document.getElementById('foo').addEventListener(
'mousemove',
function(e) { e.stopPropagation() },
false
)
コンテナーでの "mousemoves" の伝播を停止するこの組み合わせにより、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 は、「マウスの移動が停止しました」を使用して、ブラウザーのクロム (戻る/進むボタンなど) でツールチップをトリガーしているようです。https://bugzilla.mozilla.org/show_bug.cgi?id=82953を参照してください。ただし、これがDOMに影響するかどうかはわかりません。
更新: Firefox 10 がこの動作を示す最後のバージョンのようです。Firefox 11.0 以降では、イベントの伝播に関係なくツールチップが表示されます。
更新: Firefox 33(.1) では、この動作は発生しなくなりました。