Ich habe folgendes problem . Ich erstelle dynamisch ein x-y Kordinatengitter . In diesem kann man auf die Felder klicken und bekommt dann ausgegeben über den event handler auf welches Feld man geklickt hat . Es funktioniert auch . Sobald ich aber vor dem dynamischen Aufbau folgendes definiere
topdiv = topdiv + 1200;
funktioniert es nicht mehr , woran kann das liegen ? Bin am Verzweifeln da ich alles mögliche schon probiert habe aber einfach nicht rausbekomme woran es liegt .
Funktioniert nicht mehr heißt?
Wie lautet die Fehlermeldung?
Welchen Browser benutzt du?
...
//---------- codeausschnitt
topdiv = topdiv + 1200;
for(i=0;i<20;i++){for(j=0;j<30;j++){
Globale Variabeln solltest du immer vermeiden!
Globale Schleifenzähler sind aber noch gefährlicher, du musst in JS eine Variabel mit var lokal machen.
divmap = document.createElement('div');
divmap.setAttribute("id",i+"_"+j);
setAtrribute ist hier nicht nötig und bringt manchmal auch den IE ins schlingern, es reicht absolut wenn du die Zuweisung so schreibst:
divmap.id = i + "_" + j;
Aber ids dürfen nicht mit einer Zahl beginnen.
divmap.style.position ="absolute";
divmap.style.width = "60px";
divmap.style.height = "60px";
divmap.style.top = topdiv+"px" ;
divmap.style.left= leftdiv+"px";
divmap.ondblclick = function() { mapcordanwahl(this.attributes.id.nodeValue); }
was ist den attributes?
Was soll der Parameter übergeben? Die ID?
das wäre dann this.id
Aber wozu brauchst du die?
Dir ist klar, dass this das Objekt ist und du die nicht mehr mit getElement.. aus dem Dokument holen musst?
leftdiv =leftdiv+60;
übrigens kannst du in den meisten Programmiersprachen das abkürzen:
leftdiv += 60;
Struppi.
Javascript ist toll (Perl auch!)