personalmente mi piace il plugin "hoverIntent":
http://cherne.net/brian/resources/jquery.hoverIntent.html
dalla pagina: hoverIntent è un plugin che tenta di determinare l'intenzione dell'utente ... come una sfera di cristallo, solo con il mouse movimento! Funziona come (ed è stato derivato da) hover incorporato di jQuery. Tuttavia, invece di chiamare immediatamente la funzione onMouseOver, attende che il mouse dell'utente rallenti abbastanza prima di effettuare la chiamata.
Perché? Per ritardare o impedire lo sparo accidentale di animazioni o chiamate ajax. I timeout semplici funzionano per aree piccole, ma se l'area di destinazione è ampia, può essere eseguita indipendentemente dall'intento.
var config = {
sensitivity: 3, // number = sensitivity threshold (must be 1 or higher)
interval: 200, // number = milliseconds for onMouseOver polling interval
over: makeTall, // function = onMouseOver callback (REQUIRED)
timeout: 500, // number = milliseconds delay before onMouseOut
out: makeShort // function = onMouseOut callback (REQUIRED)
};
$("#demo3 li").hoverIntent(config)
Opzioni di configurazione
sensibilità: Se il mouse si sposta meno di questo numero di pixel tra intervalli di polling, quindi la funzione "over" sarà chiamato. Con la soglia minima di sensibilità di 1, il mouse non deve spostarsi tra gli intervalli di polling. Con soglie di sensibilità più elevate è più probabile che riceviate un falso positivo. sensibilità predefinita: 7
intervallo: Il numero di millisecondi hoverIntent attende tra lettura/confronto coordinate del mouse. Quando il mouse dell'utente entra per la prima volta nell'elemento, le sue coordinate vengono registrate. Il più presto possibile la funzione "sopra" può essere chiamato dopo un singolo intervallo di polling. Impostando l'intervallo di polling più alto si aumenta il ritardo prima della prima possibile chiamata "sopra", ma si aumenta anche il tempo al successivo punto di confronto. Intervallo predefinito: 100
oltre: Obbligatorio.La funzione che desideri chiamare su MouseOver. La tua funzione riceve gli stessi oggetti "this" e "event" come farebbe con il metodo hover di jQuery.
timeout: Un semplice ritardo, in millisecondi, prima che venga chiamata la funzione "out". Se l'utente torna indietro sull'elemento prima che il timeout sia scaduto, la funzione "out" non verrà chiamata (né verrà chiamata la funzione "over"). Questo è principalmente per proteggere da traiettorie di mouse mousing/sciatta che temporaneamente (e non intenzionalmente) tolgono l'utente dall'elemento bersaglio ... dando loro il tempo di tornare. Timeout predefinito: 0
out: Obbligatorio. La funzione che desideri chiamare su MouseOut. La tua funzione riceve gli stessi oggetti "this" e "event" come farebbe con il metodo hover di jQuery. Nota, hoverIntent chiamerà la funzione "out" solo se la funzione "over" è stata chiamata su quella stessa esecuzione.
$ (this) .data? Sembra che io abbia qualche lettura da fare! –
+1 per hoverIntent! – alex
Questa dovrebbe essere la prima risposta. – Ronan