Struppi: document.getElementById is null

Beitrag lesen

Die Javascript Konsole in Firefox sagt mir bei folgendem Script die ganze Zeit dass "curbutton" null ist:

Ja.

curbutton.onmousedown = function() { curbutton.src = ('images/wordx/active/' + xbutton.img + '.gif'); if (evt.preventDefault) evt.preventDefault() };

Hier musst du auf this zugreifen, nicht auf curbutton. Und ich vermute auch, dass du hier nicht auf das richtige xbutton Objekt zugreifst. Da deine Schleife beim aufruf dieses Events schon längst beendet ist.

Der beste Weg, um solche Problem zu lösen ist es eine Helperfunktion, die eine Funktion zurückliefert, für deinen Eventhandler.

In etwa so:

function getDownEvent(button) {  
   return function(evt) {  
      this.src = 'images/wordx/active/' + button.img + '.gif';  
      if (evt.preventDefault) evt.preventDefault();  
   }  
}  
  
curbutton.onmousedown = getDownEvent(xbutton);

curbutton.onclick = wordxcmd(xbutton.cmd);

Gibt diese Funktion eine Funktionsreferenz zurück? Ansonsten ist diese Zuweisung falsch.

curbutton.onmouseover = function () { curbutton.src = ('images/wordx/hover/' + xbutton.img + '.gif') };
}

Hier auch this, statt curbutton

Und noch zwei interessante Links für dich:
http://redaktion.selfhtml.org/selfhtml-preview/javascript/einbindung.html#traditionelles-event-handling
http://redaktion.selfhtml.org/selfhtml-preview/javascript/einbindung.html#fehler-handler-aufrufen

Struppi.