Ho utilizzato il seguente snippet per determinare in Chrome/Safari & FF se un utente passa con il mouse su un ancoraggio.jQuery perché: hover funziona solo una volta?
var isURL = $("a", obj).is(":hover");
Ho visto diversi post su: hover essere un selettore CSS, ma quello che non riesco a ottenere la mia testa intorno è il motivo per cui il codice restituisce vero se c'è 1 collegamento all'interno obj ma getta una javascript espressione non riconosciuta al passaggio del mouse al volo se ce ne sono 2 o più.
Ecco un violino di: hover di lavoro: - http://jsfiddle.net/2kyaJ/122/
Stesse ma più elementi (non funzionante): - http://jsfiddle.net/2kyaJ/121/
Qualcuno può spiegare questo a me?
Tra l'altro ho visto questo ... How do I check if the mouse is over an element in jQuery?
4 anni sul è questo ancora il migliore e apparentemente solo modo per determinare se un utente è in bilico sopra un elemento? Se sì qualcuno sarebbe in grado di fornire un esempio?
Modifica: ha dovuto andare a pescare esattamente ciò di cui avevo bisogno, ma si scopre che, per quanto semplice sia, funziona davvero bene.
Attualmente lo sto usando all'interno di un plugin con jQuery 1.9.1 dove sto attivando un'animazione su un mouseover di un elemento genitore (obj). Spero che qualcun altro lo trovi utile in futuro. Usa .length invece di .size come .size è deprecato dalla versione 1.8 in poi.
function isMouseOver() {
if ($('a:hover', obj).length != 0) {
return true;
} else {
return false;
}
}
Usage:
var isURL = isMouseOver();
Perché per la logica di lavorare, * tutti * '.sample' elementi dovrebbero essere attestata allo stesso tempo. È necessario verificare quale elemento (se presente) è sospeso individualmente per ottenere ciò che si desidera qui. – BenM
@BenM, se è vero, quindi [la documentazione] (http://api.jquery.com/is/) è errata: "Controlla il set di elementi corrente abbinato a un selettore, elemento o oggetto jQuery e ritorna' true' if ** almeno un ** di questi elementi corrisponde agli argomenti specificati. " – redbmk
Bene, controlla la tua console. Sizzle non supporta 'hover' per oggetti jQuery contenenti più di un elemento:' Errore non rilevato: errore di sintassi, espressione non riconosciuta: hover'. – BenM