2010-06-16 14 views
5

Tengo otro problema, y ​​como la respuesta es rápida, ¡vuelvo otra vez!Problema con el efecto de Jquery: ¿Cómo detectar si mouseover se activa mediante desplazamiento?

Me gustaría utilizar "tecla de navegación" y por eso, yo uso el caso de activación de las teclas pulsada la tecla/arriba)

Cuando mi ratón está sobre un div (div que está contenaing una mesa grande) y me tire la tecla abajo:

i desplazarse hasta el próximo td + estilo CSS + cambio de quitar el estilo actual

Y de nuevo, para cada evento ..

por lo tanto, porque mi ratón está sobre el div principal, cada una vez que me desplazo (automático) a un elemento, el evento mouseover se activa rojo ..

Y así, el efecto se perdió ..

Este es el guión perfecto:

  • navegación mediante el teclado del usuario uso: Sitúe el ratón está desactivada (modificar de manera única estilo con la tecla arriba/abajo)
  • usuario no utilice el teclado: mouseover cambiar el estilo

¿me podría ayudar?

El código:

$("#content tr").mouseover(function() { 
    $("#content tr.use,#content tr.sel").removeClass("use sel"); 
    $(this).addClass("sel"); 
}); 

Y el código de navegación mediante el teclado: http://pastebin.com/Hgn5Y1FV

(Lo siento de nuevo para mi .. Inglés)

Gracias

+0

Realmente no entiendo cuál es el problema aquí. – jAndy

+0

El mouseover se activa cuando me desplazo ... Y cuando me desplazo con la navegación de teclado, agrego efecto al elemento. El efecto está deshabilitado porque elemen.mouseover también se activa ... – Crupuk

Respuesta

0

probar esto. Cada vez que se inicia el desplazamiento (desde las teclas de flecha), haga que establezca un indicador en verdadero, y cuando el desplazamiento se detenga, establezca el indicador en falso.

var keyboardScroll = false; // Set to true when keyboard scroll begins 
          //  and false when keyboard scroll ends 

Luego tienen la carrera mouseover código sólo si keyboardScroll es falso;

$("#content tr").mouseover(function() { 

    if(!keyboardScroll) { // Run code only if keyboard scroll is not true 
     $("#content tr.use,#content tr.sel").removeClass("use sel"); 
     $(this).addClass("sel"); 
    } 

}); 
+0

Ya lo intento ... Y no funcionan, porque el complemento scrollTo establece keyboardScroll = false para el final del desplazamiento .. Y así, se activa el mouseover .. :-( – Crupuk

+0

@Crupuk - Ahora veo que tienes la variable 'keyNav'. Es extraño que no funcione. El plugin indica que' onAfter' se ejecuta después de que se complete la animación. – user113716

+0

Mira este código: $ ('# contenido tr'). Unbind ('mouseover'); $ ("# contenido"). ScrollTo ('- =' + $ ("#" + id) .outerHeight (verdadero) + 'px' , {'onAfter': function() {alert ("rebind"); $ ('# content tr'); bind ('mouseover');}}); El evento de desvinculación funciona, pero no el enlace .. Tal vez, es porque #content> table> tr se agrega dinámicamente con ajax.Entonces, el mouseover se define en el método de éxito de ajax y el bind se llama outside porque keypress se establece en "documento" y no necesita colocarse en ajax() (no es simple ...: -s - -> Lo siento) – Crupuk

Cuestiones relacionadas