Variable an neue 'interne' Funktion übergeben

Nospherates

Erfahrenes Mitglied
Hallo!
Mir ist keine definitiv passende kurze Beschreibung für das Problem eingefallen, deswegen etwas sehr wage :confused:

Ziel:
Ich möchte eine Tabelle dynamisch erzeugen, die alle Aufträge anzeigt die an einem gewählten Datum durchgeführt wurden. Die Aufträge haben eine Auftragsnummer und einen Netznamen. Der Auftragsname soll der Linkname sein, der dann zu einer Detailansicht führt. Außerdem soll über einen Tooltip der Netzname angezeigt werden wenn man mit der Maus über den Link fährt.

Problem:
Im Prinzip ist das alles gelöst, bis auf die Sache mit dem Tooltip. Die Funktion klappt soweit und ich bekomme auch einen Tooltip, nur bekomme ich nicht den passenden Netznamen. Ich erstelle zwar mit jedem Schleifendurchgang eine neue Funktion für den Onmousover-Effekt, aber die Variable die den Netznamen enthält wird irgendwie nicht korrekt übergeben, so dass am Ende jeder Auftrag den Netznamen des letzten erzeugten Links anzeigt.

Code:
link.onmouseover=function(){showInfo(netName)};

Die Variable netName wird vorher gefüllt. Jetzt ist die Frage wie ich es schaffe das jeder einzelne Link einen eigenen Parameter bekommen kann, der von der Funktion ermittelt wird die die Funktion für das mouseover-Event erstellt?! Geht das überhaupt? Hoffe mein Problem ist verständlich beschrieben...

Der Vollständigkeit wegen noch der restliche Code der Schleife.... ich führ die Schleife übrigens 3 mal aus und das pro Durchgang gibt es einen Netznamen. Sprich alle Aufträge der ersten Schleife haben den Netznamen des letzten Durchgangs der ersten Schleife... die zweiten der zweiten und die dritten eben den des letzten der dritten Schleife.

Code:
		for (var auftrag=0; auftrag<results[parent].childNodes.length;auftrag++){
			var zelle = document.createElement("td");
			var daten = results[parent].childNodes[auftrag];
			var mainr = daten.childNodes[0].firstChild.nodeValue;
			var netName = daten.childNodes[1].firstChild.nodeValue;
			var linkname="showMain.jsp?nr="+mainr+"&cont="+daten.nodeName;
			zelle.className='tabPortal viewInfo';
			var link = document.createElement("a");
			link.href=linkname;
			link.appendChild(document.createTextNode(daten.nodeName));
			link.onmouseover=function(){showInfo(netName)};
			link.onmouseout=function(){$("#tooltip").hide()};
			zelle.appendChild(link);
			zeile.appendChild(zelle);
			if ((auftrag+1) % cols==0){
				tblBody.appendChild(zeile);
				zeile = document.createElement("tr");				
			}
		}
 
Zuletzt bearbeitet:
Hi,

versuch mal die Handlerfunktion über ein neues Funktionsobjekt zuzuweisen:
Code:
objElem.onmouseover=new Function("fn", "showInfo('"+netName+"');");

Ciao
Quaese
 
Hm... ich wollte schon direkt schreiben, dass ich das schon probiert hatte... aber nachdem ich's nun doch noch kopiert hab hat es geklappt... :)

Besten Dank!
 

Neue Beiträge

Zurück