Ich habe unten ein Script eingefügt.
In diesem Script wird durch Anklicken eines Buttons eine Tabelle angezeigt.
Mit dem Ereignis onmouseout soll die Tabelle unsichtbar werden. Aber leider wird die Tabelle bereits beim Berühren unsichtbar (wie bei onmouseover).
Wo dran liegt das?
Des weiteren befindet sich in der Tabelle ein Submit.
Mit Klick auf den Submit überprüft das System, ob in der Tabelle Eintragungen vorgenommen wurden. Wenn nicht, erscheint eine Fehlermeldung. Ansonsten werden die Daten per E-Mail versannt.
Jetzt meine Bitte:
Kann mir jemand das Script folgendermaßen umschreiben:
Wenn der Submit angeklickt wird und keine Fehlermeldung erscheint, soll die Tabelle unsichtbar werden.
<form name="form" method="post" action="mailto:henze-herbert@t-online.de?SUBJECT=Betreff für die Mail" enctype="text/plain" onSubmit="return validate_form(this.form)">
1: ... woran liegt das?
Du bist zwar noch innerhalb der Tabellengrenzen, aber kaum berührst du ein anderes Element innerhalb dieser Grenzen, gilt die Maus als draußen und die Tabelle verschwindet. Das ist ärgerlich. Liegt daran, dass als Eventtarget bei onmouseout das Element als Target git, in das sich die Maus bewegt, und nicht das, wo sie herkommt. Du kannst diesen Effekt abfangen, indem du in die function showIt abfragst, ob das Ereignis nicht von den Kindelementen (=die hinein geschachtelten) ausgelöst wurde oder vom Element selbst, wenn du aus einem der Kindelemente wieder ins Element zurück kommst. Dann könnte die function showIt etwa so aussehen:
HTML-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
function showIt(actualevent,t) {
v = t.id;
if(v == 'start') {
document.getElementById('opt_start').style.display = 'block';
} else {
var eventtarget=actualevent.relatedTarget?event.relatedTarget:actualevent.toElement;
var childs=t.getElementsByTagName('*');
for(var i=0;i<childs.length;i++)if(childs[i]==eventtarget||t==eventtarget)return;
document.getElementById('opt_start').style.display = 'none';
}
}
Du musst die Funktion dann mit zwei Übergabewerten aufrufen, und zwar so: