2009-12-30 18 views
5

¿Hay alguna manera de desplazarse sobre un elemento mediante javascript? No quiero crear otra clase, solo quiero hacer que el elemento se desplace con javascript cuando el puntero del mouse no esté sobre ese elemento.Elemento emergente con JQuery

Por ejemplo, tengo 5 elementos con la misma clase y quiero invocar el cursor sobre todos ellos cuando uno de ellos está suspendido.

+1

¿Qué estás hablando? – SLaks

+0

¿Qué quiere decir exactamente con "colocar el elemento sobre el elemento"? ¿Hacer que se vea diferente? –

Respuesta

6

supongo que te refieres a la clase de pseudo :hover que se ha asociado con un enlace (por ejemplo). Al pasar el cursor sobre ese enlace, desea invocar todos los demás :hover estilos de enlace.

Desafortunadamente, no puede invocar los estilos :hover de jQuery, eso requiere que realmente mueva el puntero del mouse sobre ese elemento. Tienes que usar clases y utilizar el evento de jQuery.

2

Si entiendo su pregunta correctamente, ha agregado un evento hover usando jQuery, y desea activar ese evento manualmente independientemente del mouse.

Si entendí correctamente, desea llamar al mouseenter para desencadenar el evento mouseenter.

Si he entendido mal, y realmente tiene una regla CSS :hover que desea activar con Javascript, eso no es posible.
En su lugar, debe agregar un nombre de clase a la regla (por ejemplo, something:hover, something.FakeHover { ... }) y agregar ese nombre de clase con jQuery. (por ejemplo, $(...).addClass('FakeHover')).

0

En jQuery, the trigger function le permite activar eventos (incluido mouseover, creo) en los elementos.

En JavaScript directo, si ha asignado una función al controlador de eventos de un elemento, puede, por supuesto, llamar cuando lo desee. P.ej.

function mouseoverHandler() { 
    // Do something 
} 

// Assign function to element’s event handler 
document.getElementById('link1').onmouseover = mouseoverHandler 

// Call that function 
document.getElementById('link1').onmouseover(); 
+2

Ni siquiera necesita 'trigger'; llamar al evento sin función de devolución de llamada también funciona, por ejemplo' $ ('# foo'). Haga clic en(); 'activará el evento de clic de' # foo'. –

+0

Correcto, pero no creo que funcione para 'mouseover'. De acuerdo con [la documentación] (http://docs.jquery.com/Events), 'mouseover()' solo le permite vincular una función al evento mouseover de un elemento. No te permite activar el evento. –

+1

Aunque la documentación no lo menciona, sí funciona para 'mouseover'. Reviso la fuente. – SLaks

3

Puede lograr esto, abordando todos los artículos en su colección al mismo tiempo en sus controladores de eventos libración

var items = $(".some-class-applied-to-many-different-items"); 
items.hover(function() { 
     // Mouseover state 
     items.addClass("blah"); // <- for example 
    }, 
    function() { 
     // Mouseout state 
     items.removeClass("blah"); 
}); 
+0

Me encantaría saber cuál es el voto negativo es para. –

Cuestiones relacionadas