2009-06-17 10 views
7

tengo un elemento con un atributo title (es decir, un texto de ayuda), envuelto en algún recipiente:Tooltips (título = "...") no se mostrará en Firefox

<div id="foo"> 
    <input type="text" title="A tooltip" /> 
</div> 

y adjunto una "mousemove" detector de eventos en el recipiente y dejar de propagación de eventos:

document.getElementById('foo').addEventListener(
    'mousemove', 
    function(e) { e.stopPropagation() }, 
    false 
) 

Esta combinación de detener la propagación de "mousemoves" en el recipiente ahora impide la descripción de muestra para el cuadro de texto interior, en Firefox 2 y upwar ds. He probado FF 2 [.0.0.20], 3 [.0.11] y el último 3.5 (Windows Server 2003, XP).

Como ejercicio rápido, Firefox usuarios pueden ver este error en la acción mediante la ejecución del siguiente lógica equivalente como anteriormente en la barra de direcciones:

javascript:void($('div.vote').mousemove(function(e){ e.stopPropagation() })) 

Ahora mouseOver cualquiera de los votos hacia arriba, voto abajo, o estrella (favoritos) iconos para esta pregunta. La información sobre herramientas ya no aparece. De nuevo, solo en Firefox.

¿Alguien tiene una solución para este comportamiento/error en Firefox? ¿Alguien más ha sido testigo de esto?

Actualización: Parece que Firefox utiliza "el mouse se detuvo para mover" la información sobre herramientas en el navegador Chrome (por ejemplo, botones hacia atrás/adelante). Ver https://bugzilla.mozilla.org/show_bug.cgi?id=82953. Sin embargo, no puedo decir si esto afecta el DOM.

Actualización: Parece que Firefox 10 fue la última versión que exhibe este comportamiento. Firefox 11.0 y siguientes muestra información sobre herramientas independientemente de la propagación del evento.

Actualización: Firefox 33 (.1) ya no presenta este comportamiento.

+0

"La información sobre herramientas para el botón" Voto "ya no aparece cuando deja el mouse sobre ella." Falso. –

+0

Lo mismo, no me pasa. – cgp

+1

Es cierto para mí. –

Respuesta

1

He confirmado este problema. Incluso he intentado propagar el evento con la mano para solamente el cuadro de entrada utilizando este código:

<div id="foo" title="A tooltip 2"> <input title="A tooltip" type="text" id="bar"/> 
</div> 
<script type="text/javascript"> 
document.getElementById('foo').addEventListener(
    'mouseover', 
    function(e) { 
     e.stopPropagation(); 
     if (document.createEvent) { 
      var inputBox = document.getElementById('bar'); 
      var evt = document.createEvent("MouseEvents"); 
      evt.initMouseEvent("mousemove", true, true, window, e.detail, e.screenX, e.screenY, e.clientX, e.clientY, false, false, false, false, null, null); 
      inputBox.dispatchEvent(evt); 
     } 
    }, 
    false 
) 
</script> 

No hay dados. Sin embargo, otros eventos de mouse, incluido mouseover, parecen funcionar bien.

Creo que esto es un error. Aunque no figura en la lista de errores de bugzilla, una búsqueda parece indicate a correlation entre el evento "mouseover" y la información sobre herramientas.

Puede descargar la última nightly build de Firefox aquí y ver si todavía está allí. Si lo es, file a bug.

Como alternativa, vería si mouseover pudiera darle el efecto deseado.

0

Recientemente leí que algunos addOns de Firefox (es decir, la barra de herramientas de google) dan como resultado problemas con la información sobre herramientas del título. Desactívelos y verifique si esto resuelve su problema.

Cuestiones relacionadas