Avatar billede ameq Nybegynder
18. maj 2006 - 11:29 Der er 12 kommentarer

Virker i IE men ikke i FF tror det er "nextSibling"

Det virker fint i IE men ikke i FF
jeg tror fejlen kommer nede ved "nextSibling"
Min javascript kode
function ToggleUdvalgEllerMedlem(sIDType, ev)
                {
                    var oSrc;
                    if (navigator.appName == 'Microsoft Internet Explorer') { // Det er en Gecko
                      oSrc = window.event.srcElement;
                    }
                    else { // Det er ikke en Gecko
                      oSrc = ev.target;
                    }
                   
                   
                    var oDivBorder = oSrc.nextSibling;
                   
                    var oIDs = document.getElementsByName(sIDType + oSrc.id);
                    //alert(oIDs.length);
                    var bBorder = false;
                    if (oDivBorder != null) bBorder = (oDivBorder.id=="divborder");

                    if (oSrc.name == "collapsed")
                    {
                        oSrc.name = "expanded";
                        oSrc.style.fontWeight = "bold";
                        for (i = 0; i < oIDs.length; i++)
                        {
                            oIDs[i].style.display = "inline";
                            oIDs[i].style.display = "inline";
                        }
                        if (bBorder)
                        {
                            oDivBorder.style.padding = "5px";
                            oDivBorder.style.border = "silver solid 1px";
                            //oDivBorder.style.backgroundColor = "lightgrey";
                        }
                    }
                    else
                    {
                        oSrc.name = "collapsed";
                        oSrc.style.fontWeight = "normal";
                        for (i = 0; i < oIDs.length; i++)
                        {
                            oIDs[i].style.display = "none";
                            oIDs[i].style.display = "none";
                        }
                        if (bBorder)
                        {
                            oDivBorder.style.padding = "0px";
                            oDivBorder.style.border = "none";
                        }
                    }
                }

Min html kode:
<tr>
<td colspan="2"><span colspan="2"><span name="collapsed" style="
                padding-top:10pt;color:#0063c0;
            " onMouseOver="
                        this.style.textDecoration = 'Underline';
                       
                    " onMouseOut="
                        this.style.textDecoration = '';
                       
                    " id="1062" onClick="
                        ToggleUdvalgEllerMedlem('udvalg', event);
                    ">Center for døve »
                </span><div id="divborder" style="width:100%;">
<table cellspacing="0" cellpadding="0" ID="Table2">
<tr id="udvalg1062" style="display:none">
<td valign="top" style="width:135px">Type:</td>

<td>Bestyrelse</td>
</tr>
<tr id="udvalg1062" style="display:none">
<td valign="top" style="width:135px">Sekretariat:</td>
<td>Gladsaxe Kommune</td>
</tr>
<tr id="udvalg1062" style="display:none">
<td valign="top" style="width:135px">Mødekalender:</td>
<td>&nbsp;</td>
</tr>
</table>
</div></span></td>
</tr>
Avatar billede olebole Juniormester
18. maj 2006 - 19:04 #1
<ole>

FF tager white-space alvorligt, så her er cellens nextSibling en textnode ... ikke tr-elementet:

<tr>
    <td>Celle</td>
</tr>

- mon ikke det er der, det går galt?

/mvh
</bole>
Avatar billede ameq Nybegynder
18. maj 2006 - 19:43 #2
hviklen line?
Avatar billede olebole Juniormester
18. maj 2006 - 19:51 #3
Der, hvor du prøver at bruge nextSibling
Avatar billede olebole Juniormester
18. maj 2006 - 20:02 #4
- men hvorfor skriver du ikke bare:
    var oDivBorder = document.getElementById("divborder");

I det hele taget, virker scriptet noget rodet  :)
Avatar billede ameq Nybegynder
22. maj 2006 - 15:51 #5
hvis jeg skulle bruger var oDivBorder = document.getElementById("divborder"); så kan jeg jo ikke teste på om oSrc.name er lige "collapsed" eller ej og der for ikke vide hvilken style jeg skal sætte
Avatar billede olebole Juniormester
22. maj 2006 - 16:35 #6
Det forstår jeg ikke
Avatar billede ameq Nybegynder
22. maj 2006 - 19:29 #7
hvor havde du tænkt dig hvis du skulle bruge var oDivBorder = document.getElementById("divborder");
for jeg skal jo teste om oSrc.name er collapsed eller ej
Avatar billede olebole Juniormester
22. maj 2006 - 19:43 #8
Det harda intet med denne linje at gøre - og det er vel den, der giver dig problemer ... eller?
    var oDivBorder = oSrc.nextSibling;
Avatar billede olebole Juniormester
22. maj 2006 - 19:45 #9
ehhhhh ... du har da vel forhåbentlig ikke flere elementer med samme ID, vel ...?
Avatar billede ameq Nybegynder
23. maj 2006 - 09:04 #10
hmm jo, men det var min plan at skrive det om så de hedder divborderOGSÅETIDNUMMER, men tror jeg bliver nok til at tage den lange vej rundt også om skrive det helt =(, så hvordan sætter jeg i mozilla at den ikke skal vist et div tag?
Avatar billede roenving Novice
23. maj 2006 - 12:10 #11
Hvordan ikke vist et tag ?-)
Avatar billede ameq Nybegynder
23. maj 2006 - 12:54 #12
pas, ved ikke lige hvordan jeg skal forklare, men nyt problem

var oIDs = document.getElementsByName(sIDType + oSrc.id); som jeg loop igennem for at sætte styles på de tag som "skujlt" return 0 i firefox og f.eks 3 i IE, hvorfor det?

men du kan se koden i brug på http://www.gladsaxe.dk/Default.aspx?ID=17460 og hvis du vælger "Bestyrelse" nede i "Her kan du søge på et udvalg, råd eller nævn:" også snakker jeg "om Voksenuddannelses Center Nord", det enste problem er der med at du se den kode er, at den ikke virker i FF på grund window.event.srcElement fejlen ikke er rettet endnu men håber du finde mere forståelse så...
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester