Überprüfen Sie mit jQuery, auf welchem Element sich der Cursor bei mouseleave() befindet?
Lesezeit: 1 Minute
Ich habe eine Reihe von Listenelementen (<li> innerhalb eines <ul>), die als Blasen auf einem Diagramm wie diesem angeordnet sind, wobei die Blasen die sind <li> Elemente:
Ich möchte in der Lage sein, den Unterschied zwischen zu erkennen
Bewegen Sie die Maus von Blase Nr. 1 zum Raster
Bewegen Sie die Maus von Bubble #1 direkt zu eine andere Blase, wie Blase 2
Ich habe versucht zu verwenden $(this) in dem .mouseleave() sogar für eine Blase, aber es registriert das Element, das Sie verlassen, und nicht das Element, über das Sie gerade schweben.
Irgendwelche Ideen, wie man das Element erhält, auf das sich die Maus bewegt mouseleave()?
N Rohler
Sie müssen verwenden event.toElement || e.relatedTarget:
$('li').mouseleave(function(e)
{
// new element is: e.toElement || e.relatedTarget
});
(Anmerkung bearbeitet || e.relatedTarget um die Browserkompatibilität zu gewährleisten)
Beachten Sie die Bearbeitung, die ich oben basierend auf einem guten Anruf von @kennebec hinzugefügt habe. Um sicherzustellen, dass Sie über Browserkompatibilität verfügen, ist es eine gute Idee, darauf zu verweisen e.toElement || e.relatedTarget statt nur e.toElement
– N Rohler
13. Oktober 2011 um 23:28 Uhr
kennebec
Wenn Sie normales Javascript verwenden können, hat jedes Ereignis (e) Mouseover und Mouseout in den meisten Browsern ein e.relatedTarget. IE vor #9 hat event.toElement und event.fromElement, je nachdem, ob Sie auf ein Mouseover oder ein Mouseout hören.
somebody.onmouseout=function(e){
if(!e && window.event)e=event;
var goingto=e.relatedTarget|| event.toElement;
//do something
}
somebody.onmouseover=function(e){
if(!e && window.event)e=event;
var comingfrom=e.relatedTarget|| e.fromElement;
//do something
}
11751800cookie-checkÜberprüfen Sie mit jQuery, auf welchem Element sich der Cursor bei mouseleave() befindet?yes