Gunnar Bittersmann: Funktion in Funktion aufrufen

Beitrag lesen

@@jbs:

nuqneH

Angenommen ich habe eine Funktion

function oberfunktion (ID) {

document.getElementbyID(ID).onclick.funktion1();
document.getElementbyID(ID).onmouseover.funktion2();
document.getElementbyID(ID).onmouseover.funktion3();
}

  
Die JavaScript-Engine muss dreimal dasselbe Element im DOM suchen\*; das ist unsinnig.  
  
Entweder du übergibst nicht die ID, sondern das Elementobjekt an die Funktion:  
  
~~~javascript
function oberfunktion(element) {  
  element.onclick.funktion1();  
  element.onmouseover.funktion2();  
  element.onmouseover.funktion3();  
}

(Aufruf bspw. oberfunktion(document.getElementbyID(ID));)

oder in der Funktion wird einmal nach dem Element gesucht und die gefundene Referenz in einer Variablen gespeichert:

function oberfunktion(ID) {  
  var element = document.getElementbyID(ID)  
  element.onclick.funktion1();  
  element.onmouseover.funktion2();  
  element.onmouseover.funktion3();  
}

Außerdem solltest du nicht onclick etc. verwenden (und damit schon möglicherweise registrierte Eventhandler überschreiben), sondern addEventListener (und IE-Pendant). [molily]

Qapla'

* wenn sie das nicht optimiert, wovon ich nicht ausgehen würde

--
Gut sein ist edel. Andere lehren, gut zu sein, ist noch edler. Und einfacher.
(Mark Twain)