Axel Richter: ich raffs leider mal nicht

Beitrag lesen

Hallo,

ihr kennt möglicher weise das beispiel
http://selfhtml.teamone.de/dhtml/beispiele/navigation.htm

da hab ich ein bisschen gespielt und
wollte ein rechteck für mein menue auswählen.

die funktion die ich geändert habe sieht
so aus:

function handleMove(ev) {
 if(!MS) {
   Event = ev;
   var bufx=Event.screenX;
   var bufy=Event.screenY;
   if(bufx < 270)

//wenn bufx < 270, dann...

if(bufx > 70)

//wenn bufx > 70, dann...

if(bufy > 70)

//wenn bufy > 70, dann...

if(bufy < 240)

//wenn bufy < 240, dann...

{
        alert("x " +bufx + " y "+bufy);
        Menue();
       }
       else if(Event.screenX > 420)

//sonst, also wenn bufx < 270 UND bufx > 70 UND bufy > 70 aber NICHT bufy < 240, dann, wenn Event.screenX > 420...

noMenue();
 }
}

Merkst Du was? Dein ELSE-Zweig gehört _nur_ zum letzten IF, wird also _nicht_ erreicht, wenn schon die vorherigen Bedingungen nicht erfüllt sind. Du willst einfach eine UND-Verknüpfung, keine verschachtelten Bedingungen. Zur Test-Anzeige der X- und Y-Werte ist übrigens ein alert() höchst ungeeignet. Hier kann man ausnahmsweise, zu Versuchszwecken, die Statuszeile missbrauchen.

function handleMove(ev) {
 if(!MS) {
   Event = ev;
   var bufx=Event.screenX;
   var bufy=Event.screenY;
   //Testausgabe BEGINN
   //nachfolgende Zeile nach der Anpassung auskommentieren:
   window.status= "x:" + bufx + " y:" + bufy;
   //Testausgabe ENDE
   if(bufx > 70 && bufx < 270 && bufy > 70 && bufy < 240)
   {
     Menue();
   }
   else noMenue();
 }
}