2009-12-30 28 views
5

C'è un modo per passare il mouse su un elemento utilizzando javascript? Non voglio creare un'altra classe, voglio solo fare in modo che l'elemento si posizioni con javascript quando il puntatore del mouse non si trova su quell'elemento.Elemento al passaggio del mouse con JQuery

Ad esempio, ho 5 elementi con la stessa classe e desidero chiamare il passaggio del mouse su tutti quando uno di essi è effettivamente al passaggio del mouse.

+1

cosa stai parlando? – SLaks

+0

Cosa intendi esattamente con "al passaggio del mouse sull'elemento"? Fai sembrare diverso? –

risposta

6

Presumo si intende la classe pseudo :hover che hai associato con un link (per esempio). Mentre si passa con il mouse su quel collegamento, si desidera richiamare tutti gli stili :hover di tutti gli altri collegamenti.

Sfortunatamente, non è possibile richiamare gli stili :hover da jQuery, che richiede effettivamente il puntatore del mouse su quell'elemento. Devi usare le classi e utilizzare l'evento di hover di jQuery.

2

Se ho compreso correttamente la tua domanda, hai aggiunto un evento hover utilizzando jQuery e desideri attivare manualmente quell'evento indipendentemente dal mouse.

Se ho capito correttamente, si desidera chiamare lo mouseenter per attivare l'evento mouseenter.

Se ho capito male, e in effetti hai una regola CSS :hover che vuoi attivare usando Javascript, non è possibile.
Invece, è necessario aggiungere un nome di classe alla regola (ad esempio, something:hover, something.FakeHover { ... }) e aggiungere il nome di classe utilizzando jQuery. (ad esempio, $(...).addClass('FakeHover')).

0

In jQuery, the trigger function consente di attivare eventi (incluso mouseover, credo) sugli elementi.

In diritto JavaScript, se hai assegnato una funzione al gestore di eventi di un elemento, puoi ovviamente chiamarlo ogni volta che vuoi. Per esempio.

function mouseoverHandler() { 
    // Do something 
} 

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

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

Non hai nemmeno bisogno di 'trigger', chiamando l'evento senza la funzione callback, ad esempio' $ ('# foo'). Click(); 'genererà l'evento click di # # foo'. –

+0

Giusto, ma non penso che funzioni per 'mouseover'. Secondo [la documentazione] (http://docs.jquery.com/Events), 'mouseover()' consente semplicemente di associare una funzione all'evento mouseover di un elemento. Non ti consente di attivare l'evento. –

+1

Anche se la documentazione non lo menziona, funziona per 'mouseover'. Controllo la fonte. – SLaks

3

È possibile raggiungere questo obiettivo affrontando tutti gli elementi nella vostra collezione, allo stesso tempo nel vostro hover gestori di eventi

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

Mi piacerebbe sapere cosa è il down vote è per. –

Problemi correlati