Problem mit dynamischen Button der eine Funktion aufrufen soll

Comi

Grünschnabel
Hallo Gemeinde.
Ich habe ein Problem mit einem kleinen Script, das dynamisch einen Button erstellen soll bzw. mehrere und die eine andere Funktion aufrufen sollen. Das alles klappt mit dem Firefox auch bestens. Aber leider nicht mit dem Internet Explorer 9 und dem Safari 4.x
Javascript:
function Plusbutton ()
{
var im = document.createElement('IMG');
	var plus = document.createElement('a'); 
	plus.setAttribute('href', '#');
	plus.onclick=function() andere_Funktion(); 
	
	im.setAttribute('src',"plus.png");
	im.setAttribute('border', 0);
	im.setAttribute('title','weiteres');
	im.setAttribute('alt','weiteres');
	plus.id = 'plus'+y;
	plus.appendChild(im);

document.getElementById('extendSearch').appendChild(plus);

}
Wenn ich das im IE aufrufe kommt die Fehlermeldung: Der Wert der Eigenschaft "Plusbutton" ist NULL
oder undefiniert, kein Function-Objekt. Safari sagt: Can´t find variable Plusbutton.
Des weiteren funktionieren alle anderen Funktionen die unterhalb dieser liegen auch nicht mehr.

Wenn ich die Zeile plus.onclick=function() andere_Funktion(); aber auskommentiere, funktionieren dies zumindest wieder.

Kann mir da mal jemand einen Tipp geben?

Herzlichen Dank im Voraus.
Comi
 
Zuletzt bearbeitet von einem Moderator:
Der Grund liegt darin, dass das, was du da hingeschrieben hast, auch vollkommener Unsinn ist: da fehlen die geschweiften Klammern!
Code:
function Plusbutton() {
  var im   = document.createElement('IMG');
  var plus = document.createElement('a');
  plus.setAttribute('href', '#');
  plus.onclick = function () {
    andere_Funktion();
  }
  
  im.setAttribute('src',    'plus.png');
  im.setAttribute('border', 0);
  im.setAttribute('title',  'weiteres');
  im.setAttribute('alt',    'weiteres');
  plus.id = 'plus' + y;
  plus.appendChild(im);
  
  document.getElementById('extendSearch').appendChild(plus);
}
 
Hm, auch wenn ich deine vernichtende Antwort wegen fehlender Klammern, ein wenig hart finden - vielen Dank für deine schnell Antwort. Nun funktioniert es.

Gruß Comi
 
Verzeih mir meinen Sarkasmus, der leider beim Kodieren in Buchstaben immer etwas verloren geht. Aber mir fiel gerade auf, dass du theoretisch die Zeile auch noch kürzen kannst. Das müsstest du aber mal ausprobieren:
Code:
function Plusbutton() {
  var im   = document.createElement('IMG');
  var plus = document.createElement('a');
  plus.setAttribute('href', '#');
  plus.onclick = andere_Funktion;
  
  im.setAttribute('src',    'plus.png');
  im.setAttribute('border', 0);
  im.setAttribute('title',  'weiteres');
  im.setAttribute('alt',    'weiteres');
  plus.id = 'plus' + y;
  plus.appendChild(im);
  
  document.getElementById('extendSearch').appendChild(plus);
}
 

Neue Beiträge

Zurück