• Home
  • Artikel
  • Projekte
  • Reisen
  • Arbeit
  • Know-how
  • Kunst
  • Über mich
  • Home
  • Kontakt
  • Home
  • Kontakt
  • Home
  • Artikel
  • Projekte
  • Reisen
  • Arbeit
  • Know-how
  • Kunst
  • Über mich

Know-How

onmouseout in Unterelementen "verhindern"

Wenn man mit dem Mauscursor über den DIV bewegt bleibt es erwartungsgemäß "display=block". Bewegt man den Mauszeiger aber weiter über ein Child Element (z.B. ein Link) wird onmouseout ausgeführt. Besteht die Möglichkeit onmouseout nur auszuführen wenn ich wirklich außerhalb des DIVs bin?

Diese Javascript Funktionen übernehmen:

function containsDOM (container, containee)
{
  var isParent = false;
  do
  {
    if ((isParent = container == containee))
      break;
    containee = containee.parentNode;
  }
  while (containee != null);
  return isParent;
}

function checkMouseEnter (element, evt)
{
  if (element.contains && evt.fromElement)
    return !element.contains(evt.fromElement);
  else if (evt.relatedTarget)
    return !containsDOM(element, evt.relatedTarget);
}

function checkMouseLeave (element, evt)
{
  if (element.contains && evt.toElement)
    return !element.contains(evt.toElement);
  else if (evt.relatedTarget)
    return !containsDOM(element, evt.relatedTarget);
}

Und im DIV den mouseout Event umschreiben:

onmouseout="if (checkMouseLeave(this, event)) {this.style.visibility = 'hidden';}"

Tags
Javascript

Zurück zur Übersicht

© 2018 In4matiker