Richard87 Skrevet 26. mars 2007 Del Skrevet 26. mars 2007 (endret) hei, jeg har ett script som opner og lukker "popups", men har problemer med og lukke disse. Planen her og ha maks 10 popups på skjermen samtidig( fom 1 tom 10) vær gang et popup blir lukket, f.eks nr 5, må listen omstruktureres, slik at nr 6 blir 5, 7 blir 6 etc, og ein variable wincount blir satt til antall vinduer + 1... variablen som holder på alle winduene hetter win[]... PS. Har slitt lenge med denne koden nå, takker for all hjelp;) her er kodene: createWindow() : Klikk for å se/fjerne innholdet nedenfor function createWindow(type, title) { if (wincounter <= 10) { wnd = new_Window(title); win[wincounter] = wnd; getDesktop().appendChild(wnd['window']); wincounter++; switch (type) { case 'explorer': break; } } else { alert("Error: Maximum numbers of windows reach..."); } } closeWindow() : Klikk for å se/fjerne innholdet nedenfor function closeWindow2(id) { temp = win[id]; if (id == 10) { win[10] = null; wincounter = 10; } else if (id == 0) { /* No such window */ } else if (id < 10) { var x = 0; for (x= id; x <= 10; x++) { if (win[x] == null) { wincounter = x - 1; alert("WC: "+wincounter); break; } else { item = win[x]; y = item['window'].childNodes[3].value win[x] = win[x+1]; win[x]['window'].childNodes[3].value = x; alert("Old Value: "+y+" New Value: "+ x); } } } else if (id > 10) { /* No such window */ } getDesktop().removeChild(temp['window']); temp = null; } btw, 'live' versjon av koden: http://blackhawk.mine.nu/richard3 [EDIT] Popupene som 'virker' er about og explorer... Endret 26. mars 2007 av Richard87 Lenke til kommentar
Kagee Skrevet 27. mars 2007 Del Skrevet 27. mars 2007 Du må deklarere vindusarray'et globalt, slik at begge funksjoner har tilgang til det. Lenke til kommentar
Richard87 Skrevet 28. mars 2007 Forfatter Del Skrevet 28. mars 2007 (endret) takker for svar, men det var ikke problemet(win[] var deklarert i toppen av skripte(for og testa la eg det te i head på html siå, men det hjalp lide:( ) noen andre forslag? [EDIT] JS påstår at x+1 (hvor x = 9) = 91 (ikke 10 ) men det virker enda ikke:'( Endret 28. mars 2007 av Richard87 Lenke til kommentar
dabear Skrevet 28. mars 2007 Del Skrevet 28. mars 2007 Herlighet så komplisert du gjør det da! Legg til et vindu på slutten av arrayet, med yourArray.push(newElementHere) og fjern valgt element med yourArray.slice() For å sjekke antall vindu som er lagt til i arrayet/hashen, kjører du yourArray.length (eller .push() som i tillegg returnerer ny lengde). Må da være langt enklere? Dessuten; x='10' // merk string her alert(parseInt(x)+1) //11 Lenke til kommentar
Richard87 Skrevet 29. mars 2007 Forfatter Del Skrevet 29. mars 2007 (endret) vis eg bare hadde vist om de funksjonene tidligere:D [EDIT] Trenge litt te hjelp:( nå har eg disse funksjonene: function closeWindow(id) { temp = win[parseInt(id)]; alert(temp); win.splice(parseInt(id),1); if (! win.lenght == 0) { x = 0 for (x = 0; x == win.lenght; x++) { item = win[x]; item['window'].childNodes[3].value = x; } } getDesktop().removeChild(temp['window']); } function createWindow(type, title) { if (win.push() >= 10) { alert("Error: Maximum numbers of windows reach..."); } else { wnd = new_Window(title); id = parseInt(win.push(wnd)); alert(id); wnd['info'].value = parseInt(id); switch (type) { default: break; } getDesktop().appendChild(wnd['window']); } } Probleme e at i CloseWindow så virke ikkje temp = win[parseInt(id)]; any idea? [EDIT2] Ok, fant ut av det, problemet var i CreateWindow, id = win.push() returnerte lengden på arrayet, ikke id'en til winduet mitt:D... [EDIT3] Der e endå någen bugs i CloseWindow.. any idea? (inni for next loopen) Endret 29. mars 2007 av Richard87 Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå