magge87 Skrevet 6. juni 2008 Del Skrevet 6. juni 2008 Hei Jeg driver med en side som inneholder en tabell. Jeg bruker <TR class="EndedRow"> for show/hide av rader. Oppsettet jeg har nå fungerer greit med en checkbox som kjører en funksjon. Funksjonen: function zxcTableRows(zxccb,zxcid){ var zxctable=document.getElementById(zxcid); if (!zxctable.cbs) zxctable.cbs=[]; if (!zxccb.set){ zxccb.set=true; zxctable.cbs.push(zxccb); } var zxcreg=''; for (var zxc0=0;zxc0<zxctable.cbs.length;zxc0++){ if (zxctable.cbs[zxc0].checked) zxcreg+=zxctable.cbs[zxc0].value; } zxcreg=(zxcreg=='')?null:zxcreg; var zxcrows=zxctable.rows; for (var zxc0=0;zxc0<zxcrows.length;zxc0++){ zxcrows[zxc0].style.display=(zxcreg)?'none':''; if (zxcreg&&zxcrows[zxc0].className&&zxcreg.indexOf(zxcrows[zxc0].className)>-1&&zxcrows[zxc0].className.length==zxcreg.length){ zxcrows[zxc0].style.display=''; } Og med en checkbox. <input type="checkbox" name="Kun Pågående" value="EndedRow" onClick="zxcTableRows(this,'tst');"/> Hvor 'tst' er <TABLE id>. Problemet mitt er at jeg ikke for omskrevet eller "kjørt" denne checkbox'n når siden kjøres. Har prøvd window.onload = function() { value='EndedRow'; zxcTableRows(this,'tst'); } og forskjellige versioner av mer eller mindre det samme. Er ikke så dreven i HTML, men tror egentlig problemet ligger i at verdiene til table/tr ikke blir loadet før etter funksjonen blir kjørt? Noen som eventuelt har en smart løsning? Har også prøvd å legge <script></script> rett før </body></html> osv uten at det gir noe bedre resultat Lenke til kommentar
magicgunnar Skrevet 6. juni 2008 Del Skrevet 6. juni 2008 Jeg tror ikke jeg helt forstod hva du ønsket å gjøre, men kan problemet ditt ha noe med å gjøre at når checkboxens onclick kjøres så vil "this" peke på checkboxen, fordi det er den som trigger eventen, men når du kjører onload så vil "this" peke på vinduet, fordi den har trigget onload-eventen? Generelt kan jeg si utfra egen erfaring at man må holde tunga rett i munnen når man bruker this i funksjoner som trigges av eventer. Lenke til kommentar
magge87 Skrevet 6. juni 2008 Forfatter Del Skrevet 6. juni 2008 (endret) Takk for svar. Ja, jeg tror det selv. Men skal prøve å forklare litt bedre. Men tabellen min er hvertfall slik mer eller mindre: <input type="checkbox" name="Kun Pågående" value="EndedRow" onClick="zxcTableRows(this,'tst');"/> <TABLE id="tst"> <TR class="EndedRow"> <TD>Behold dette</TD> </TR> <TR> <TD>Skjul dette</TD> </TR> </TABLE> Så det jeg vil gjøre er å få samme resultatet onload som jeg gjør med checkbox'n. Jeg må vell prøve å få skrevet om funksjonen slik at den kan ha value som en parameter eller no. Men i teorien burde det ikke være noe problem å få skjult rader i en tabell når du laster inn siden med TR class? EDIT: checkbox'n er utafor table. Endret 6. juni 2008 av magge87 Lenke til kommentar
magicgunnar Skrevet 6. juni 2008 Del Skrevet 6. juni 2008 (endret) Du kan jo prøve å sette id='checkboxId' og slenge med denne som variabel istedenfor 'this': window.onload = function() { value='EndedRow'; var checkbox = document.getElementById('checkboxId'); checkBox.value = value; zxcTableRows(checkbox, 'tst'); } Aner ikke om det vil funke, men det er kanskje verdt et forsøk? Når checkboxen har en id kan du også skrive ut zxccb.id for å se hva som har kommet inn i rutinen din. Endret 6. juni 2008 av magicgunnar Lenke til kommentar
magge87 Skrevet 9. juni 2008 Forfatter Del Skrevet 9. juni 2008 Du kan jo prøve å sette id='checkboxId' og slenge med denne som variabel istedenfor 'this': window.onload = function() { value='EndedRow'; var checkbox = document.getElementById('checkboxId'); checkBox.value = value; zxcTableRows(checkbox, 'tst'); } Aner ikke om det vil funke, men det er kanskje verdt et forsøk? Når checkboxen har en id kan du også skrive ut zxccb.id for å se hva som har kommet inn i rutinen din. Takk for svar. Fungerte ikke. zxccb.id var "undefined" Jeg tok bare en alert(zxccb.id). Vet ikke helt om det burde returnere den korrekte verdien? Gah. Dette er ufattlig irriterende. <BODY onload> fungerer heller ikke. Lenke til kommentar
magge87 Skrevet 9. juni 2008 Forfatter Del Skrevet 9. juni 2008 Du kan jo prøve å sette id='checkboxId' og slenge med denne som variabel istedenfor 'this': window.onload = function() { value='EndedRow'; var checkbox = document.getElementById('checkboxId'); checkBox.value = value; zxcTableRows(checkbox, 'tst'); } Aner ikke om det vil funke, men det er kanskje verdt et forsøk? Når checkboxen har en id kan du også skrive ut zxccb.id for å se hva som har kommet inn i rutinen din. Takk for svar. Fungerte ikke. zxccb.id var "undefined" Jeg tok bare en alert(zxccb.id). Vet ikke helt om det burde returnere den korrekte verdien? Gah. Dette er ufattlig irriterende. <BODY onload> fungerer heller ikke. Lenke til kommentar
magge87 Skrevet 9. juni 2008 Forfatter Del Skrevet 9. juni 2008 (endret) Satt id="checkboxId" i checkbox'n og da returnerer både checkbox variablen i onload scriptet og zxccb samme id og value. Jeg veit ikke om zxccb har noen flere egenskaper man trenger å kopiere til checkbox variablen. Brukte forresten alert() for å vise hva slags verdier variabla hadde. Fant ut at zxctable.cbs returnerer forskjellige verdier på onload og når jeg trykker på checkbox'n. (ved bruk av den funksjonen du skrev magicgunnar). Betyr det at tabellen ikke er lastet ned før etter onload funksjonen er kjørt? For det er samme id. Endret 9. juni 2008 av magge87 Lenke til kommentar
magge87 Skrevet 9. juni 2008 Forfatter Del Skrevet 9. juni 2008 Løst. Takk for hjelpen. 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å