Ü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:

http://i.stack.imgur.com/PR7vR.png

Ich möchte in der Lage sein, den Unterschied zwischen zu erkennen

  1. Bewegen Sie die Maus von Blase Nr. 1 zum Raster
  2. 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()?

Benutzer-Avatar
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

Benutzer-Avatar
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
}

1175180cookie-checkÜberprüfen Sie mit jQuery, auf welchem ​​Element sich der Cursor bei mouseleave() befindet?

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy