function print(){ for (i=0, i<=8) document.write("<td onMouseover=\""+WstatusOver+"\" data"+dataOver+", onMouseout=\""+WstatusOut+"\", data"+dataOut+"> <a href=\"java script:ImgShift()\"><img src=\"Pics/"+obj[i].split("*")[0]+"/IMAGE001.jpg\" height=\"200\" width=\"250\" border=\"0\" name=\"obj_"+obj[i].split("*")[5]+"\" alt=\"klik for at se denne "+obj[i].split("*")[0]+" fra andre vinkler.\"></a> <table cellpadding=\"2\" cellspacing=\"2\" border=\"1\" width=\"100%\"><tr><td ID=data"+obj[i].split(*)[5]+"> "+Mark+" "+obj[i].split("*")[0]+"<br /> "+Year+" "+obj[i].split("*")[1]+"<br /> "+Km+" "+obj[i].split("*")[2]+"<br /> "+Notice+" "+obj[i].split("*")[3]+"<br /> "+Price+" "+obj[i].split("*")[4]+"<br /> "+Nr+" "+obj[i].split("*")[5]+" </td></td>") if (i=4) document.write("</tr><tr>") }
i mit dokument hvor funktionen ser det således ud: <table> <tr> her kaldes funktionen </tr> </table>
Det egentlige spg.: Vil der ikke i første <tr> blive oprettet fire <td> og derefter indsættes </tr><tr> og så kommer fire nye <td><td>. For hver gennemgang tages data fra det obj[i] som 'behandles', dvs. for obj[5] vil det være således
Du skal jo nok lige afslutte den tabel og række du starter inde i din print-funktion eller passer det ikke (så bliver der jo lavet en ny tabel hver gang loopet starter forfra, og den afsluttes ikke igen).
Hvad skal den der data"+dataOver+" til for??? Den kommer forresten også nede i den anden celle: ID=data"+obj... hvilket ikke giver så meget mening at den bare står der.
Nu er småfejlene rettet tror jeg. data-tingen er ok,den bruges til at skifte farve i en celle når musen er over en anden celle. Funktionen ser nu sådan her ud:
//table angives i galleriet, kun <td> er med i funktionen function printiCar(){ for (i=0; i<=8; i++){ document.write("<td onMouseover=\""+WstatusOver+"\" data"+dataOver+", onMouseout=\""+WstatusOut+"\", data"+dataOut+"><a href=\"java script:ImgShift[i]()\"><img src=\"Pics/"+biler[i].split("*")[0]+"/IMAGE001.jpg\" height=\"200\" width=\"250\" border=\"0\" name=\"bil_"+biler[i].split("*")[5]+"\" alt=\"klik for at se denne "+biler[i].split("*")[0]+" fra andre vinkler.\"></a><table cellpadding=\"2\" cellspacing=\"2\" border=\"1\" width=\"100%\"><tr><td ID=data"+biler[i].split(*)[5]+"> "+Mark+" "+biler[i].split("*")[0]+"<br /> "+Year+" "+biler[i].split("*")[1]+"<br /> "+Km+" "+biler[i].split("*")[2]+"<br /> "+Notice+" "+biler[i].split("*")[3]+"<br /> "+Price+" "+biler[i].split("*")[4]+"<br /> "+Nr+" "+biler[i].split("*")[5]+" </td></tr></table></td>"); if (i=4) document.write("</tr><tr>") if (i=8) document.write("</tr>") } }
Funktionen kaldes inde mellem <table><tr> Her kaldes printiCar(); </table>
jeg forstår nu stadig ikke den onmouseover du har i den første celle du genererer... først skrive du: <td onMouseover=\""+WstatusOver+"\" - så er eventen afsluttet. Men nu skriver du jo bagefter data"+dataOver+" hvilket jeg ikke kan se meningen i, da den ligger uden for onmouseover-eventen.
Jeg vil nu mene at de to første linier skulle se sådan ud: <td onMouseover=\""+WstatusOver+";data"+dataOver+";\", onMouseout=\""+WstatusOut+";data"+dataOut+";\">
Den første linie hvor WstatusOver er defineretfår jeg at vide at: biler[...] er null eller ikke et objekt!
Jeg har et array der hedder biler, men det er defineret ok mener jeg: var biler=new Array() biler[0] = "info0*info01*info02*info03*info04*info05*info06" . . biler[8] = "info8*info81*info82*info83*info84*info85*info86"
Dernæst får jeg at vide at i selve funktionen hvor jeg benytter WstatusOver, at: 'WstatusOver' er ikke defineret!
du bliver vel nød til at inkludere WstatusOver og de tre andre inde i dit loop i funktionen printiCar(). Ellers giver den ikke meget mening: for (i=0; i<=8; i++){ WstatusOver="window.status='"+biler[i].split("*")[0]+"'; return true;"; WstatusOut="window.status=' ' ; return true;" dataOver=""+biler[i].split("*")[5]+".style.backgroundcolor='#C7CBF0'"; dataOut=""+biler[i].split("*")[5]+".style.backgroundcolor='#FFFFFF'"; txt+="<td onMouseover=\""+WstatusOver+"data"+dataOver+"\",....
og jeg har lige lavet \" om til ' så der ikke bliver nogen problemmer når du ligger den ind i txt strengen.
det tager pusten fra min com.! Når filen åbnes så fryser com. efter at vinduet er åbnet. Det er efter jeg har deklareret variablerne inde i funktionen, så det ser ud som ovenstående!
Den er desværre stadig gal! Kan det ikke være fordi at jeg vil tildele hver variabel flere værdier på samme tid? Skal jeg evt. oprette WstatusOver[i] i stedet for?
Det 'hjalp' lidt, men så fik jeg at vide at variablerne(WstatusOver, WstatusOut, dataOver, dataOut), hvilket jeg ikke helt forstod da jeg har deklareret WstatusOver[i], WstatusOut[i], dataOver[i], dataOut[i]? Men jeg har tilføjet inden funktionen: var WstatusOver, WstatusOut, dataOver, dataOut
-det fik den fejl til at forsvinde, men nu får jeg at vide at 'linie 65 et objekt var ventet' Det er på linie 65 at variablerne deklareres! dvs. der står på linie 65: WstatusOver[i]="window.status='"+bil[0]+"'; return true;";
Det 'hjalp' lidt, men så fik jeg at vide at variablerne(WstatusOver, WstatusOut, dataOver, dataOut) ikke var defineret, hvilket jeg ikke helt forstod da jeg har deklareret WstatusOver[i], WstatusOut[i], dataOver[i], dataOut[i]? Men jeg har tilføjet inden funktionen: var WstatusOver, WstatusOut, dataOver, dataOut
-det fik den fejl til at forsvinde, men nu får jeg at vide at 'linie 65 et objekt var ventet' Det er på linie 65 at variablerne deklareres! dvs. der står på linie 65: WstatusOver[i]="window.status='"+bil[0]+"'; return true;";
jeg skal vel have oprettet et array til: bil = biler[i].split("*"); gøres det sådan her: var bil=new Array(); bil[i]=biler[i].split("*");
Jeg har forsøgt med var WstatusOver = WstatusOut = dataOver = dataOut = new Array(); og
var WstatusOver=new Array(); var WstatusOut=new Array(); var dataOver=new Array(); var dataOut=new Array();
Men com. fryser stadig! Jeg skal lige være sikker på at det er en korrekt måde at oprette bil-arrayet på, for jeg tror det er der jeg har problemer nu!
du skal ikke oprette bil-arrayet hele tiden, bare gør det uden for funktionen ligesom de andre.
Fryser hele computeren eller er det bare browseren der brokker sig - det lyder lidt mystisk medmindre du er ramlet ind i et infitity loop hvilket jeg har svært ved at se du er.
Hvorfor er det at WstatusOver og de andre skal være array'es??? Det kunne jo sagtens lade sig gøre med almindelige variabler, medmindre du skal bruge de enkelte senere.
...desuden havde dit eksempel fra før også den fejl at du deklarerede de fire variabler som almindelige variabler, mens du forsøgte at bruge dem som arrayes.
fryser den fuldstændig eller hva'??? Jeg kan ikke se noget som direkte skulle få det hele til at fryse.
Men browseren kan godt opføre sig lidt mærkelig når du bruger document.write() da den kan ikke rigtig bruges når først siden er loadet. Så hvis du kalder funktionen fx ved en onload event, så vil den ikke virke som forventet.
Kanon, du er skarp :o) Det virker ;o) Mange tak. Smider I et svar hver, så deler jeg pointene. Der er en del af det som ikke er ok, men det tager jeg lige i et andet spg. Tak for hjælpen.
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.