31. oktober 2007 - 20:11
Der er
6 kommentarer og 1 løsning
Overføre variable i anonym funktion
Hej Eksperter. Er at et udsnit af en funktion jeg har: function Help(id){ alert(id); } function appendEvent(a,b,c){ if(a.attachEvent){a.attachEvent("on"+b,c)} else if(a.addEventListener){a.addEventListener(b,c,false)} else{a["on"+b]=c} } function Add(){ var obj=......; var tit=15; appendEvent(obj,"mouseover",function(){Help(tit)}); } Problemet er når Help() bliver kørt, så alerter den en tom string. Det skyldnes nok at variablen tit er lokal, og når Help så kaldes så er det glemt. Men hvordan løser jeg dette? Venlig Hilsen Søren Lyn
Annonceindlæg fra Barco
31. oktober 2007 - 21:30
#1
"tit" og "id" - mener du de skal være samme variabel? Så må du kalde dem det sammen, og skrive var tit; udenfor dine funktioner, og undlade en "var"-erklæring i funktionerne.
31. oktober 2007 - 21:31
#2
Ok, det er endnu tidligt på aftenen, så det blev lidt vrøvlet. Prøv var tit; function Add(){ var obj=......; tit=15; appendEvent(obj,"mouseover",function(){Help(tit)}); }
31. oktober 2007 - 22:52
#3
Mit problem er at uden om min appendEvent er der en for-løkke (som jeg undlod her). Denne løkke laver en masse forskellige værdier af 'tit', som så skal knyttes til hver sit elements onmouseover ... Så det hjælper ikke at gøre den global ..
01. november 2007 - 12:21
#4
Jeg har løst det selv nu :)
01. november 2007 - 12:52
#5
Hvordan løste du det, Søren Lyn?
01. november 2007 - 12:57
#6
Det skal jeg fortælle dig w13 ! I stedet for at buge den anonyme funktion function(){Help(tit)} hvor tit ikke bliver indsat rigtig, så brugte jeg new Function('',"Help("+tit+")") Sådan skal det gøres :)
01. november 2007 - 12:57
#7
Uhada! :)
Vi tilbyder markedets bedste kurser inden for webudvikling