Avatar billede cronaldo Nybegynder
20. december 2008 - 15:31 Der er 12 kommentarer og
1 løsning

OnClick-funktion virker ikke?

Hej eksperter!

Jeg bruger netop nu dette script i stedet .. det virker helt fint på nær helt til at starte med - når man netop har loadet siden. Jeg har en <div> der er sat til at have style="display: inline;" fra load af siden. Hvis man så trykker på en, af de andre vil denne ikke blive skjult! Hvis man derimod trykker på denne først og derefter på en anden virker scriptet upåklageligt - er det noget, der kan rettes?

function visElement(objekt, s) {
    if (oActive) oActive.style.display = "none";
            oActive = document.getElementById(objekt);
            oActive.style.display = "inline";
}

En anden ting, jeg gerne vil have implementeret er, at den skal skifte font-color på på objektet, der har variablen "s" .. fra #000000 til #f63da1
Avatar billede olebole Juniormester
20. december 2008 - 17:49 #1
<ole>

function visElement(objekt, s) {
    if (oActive) oActive.style.display = "none";
    oActive = document.getElementById(objekt);
    oActive.style.display = "inline";
    s.style.color = "#f63da1";
}

- og så skal du på onload lægge en refrence til det åbne element i oActive

/mvh
</bole>
Avatar billede cronaldo Nybegynder
20. december 2008 - 20:03 #2
det forstår jeg ikke helt :) .. hvad skal denne reference bestå af ? :)
Det er nemlig forskelligt hvad, der er oActive .. Jeg bruger det i en menu hvor der er 5 overskrifter, og så er der éen der er vist fra start.. Når man så klikker på en anden skal den lukke den oprindelige og åbne den "nye" .. osv. :)
Avatar billede olebole Juniormester
20. december 2008 - 20:44 #3
Link?
Avatar billede cronaldo Nybegynder
21. december 2008 - 17:37 #4
Jeg har det ikke online lige pt., da det er et upcoming projekt :) ..

Det, den egentligt skal kunne er, hvis jeg har følgende overskrifter:

OleBole
C^Ronaldo
En bruger
Hvorfor Eksperten?

Skal der være en tekst til hver "overskrift" .. Den eneste, der onLoad skal være vist, skal være teksten tilhørende OleBole, det kunne være sådan her:

OleBole
  OleBole er en bruger,
  der er at finde på
  eksperten.dk
C^Ronaldo
En bruger
Hvorfor Eksperten?

Hvis man så trykker på fx "Hvorfor Eksperten?" skal det blive således:

OleBole
C^Ronaldo
En bruger
Hvorfor Eksperten?
  Eksperten er skabt
  til folk, der har et
  problem, de vil spørge
  andre til råds om


.. Håber det gjorde det forståeligt ?
Avatar billede olebole Juniormester
21. december 2008 - 19:17 #5
Yups ... du kunne skrive noget à la:

<script type="text/javascript">
var oActive = null;
function visElement(oHead) {
    if (oActive) {
        oActive[0].style.display = "none";
        oActive[1].style.color = "#000";
    }
    var sId = oHead.getAttribute("id").split("_")[1];
    oActive = [document.getElementById("text_"+sId), oHead];
    oActive[0].style.display = "block";
    oActive[1].style.color = "#f00";
}

window.onload = function() {
    oActive = [document.getElementById("text_3"), document.getElementById("head_3")];
}
</script>

<div id="menu">
    <h3 id="head_1" onclick="visElement(this)">Link #1</h3>
    <div id="text_1">Tekst #1 - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis rhoncus tellus luctus magna. Aenean at neque.
        Vestibulum non sapien. Nam fringilla, neque eu vehicula suscipit, enim ligula pellentesque nibh, a fringilla mauris enim at erat.</div>

    <h3 id="head_2" onclick="visElement(this)">Link #1</h3>
    <div id="text_2">Tekst #2 - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis rhoncus tellus luctus magna. Aenean at neque.
        Vestibulum non sapien. Nam fringilla, neque eu vehicula suscipit, enim ligula pellentesque nibh, a fringilla mauris enim at erat.</div>

    <h3 id="head_3" style="color:#f00" onclick="visElement(this)">Link #3</h3>
    <div id="text_3" style="display:block">Tekst #3 - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis rhoncus tellus luctus magna. Aenean at neque.
        Vestibulum non sapien. Nam fringilla, neque eu vehicula suscipit, enim ligula pellentesque nibh, a fringilla mauris enim at erat.</div>
</div>

- og så bruge denne CSS:

#menu {
    width: 300px;
}
#menu h3 {
    font-size: 14px;
    margin: 0;
    cursor: pointer;
}
#menu div {
    margin-left: 12px;
    display: none;
}

Mon så ikke det skulle være til at tackle? Ellers spørger du bare videre  =)
Avatar billede cronaldo Nybegynder
21. december 2008 - 19:26 #6
Vielen dank ;) .. Utroligt.. Din hjerne må sgu have et par terabytes :P
Avatar billede cronaldo Nybegynder
21. december 2008 - 19:36 #7
Ole:
Det er så tæt på perfekt.. jeg har nu sat style="display:block" på <div id="text_1"> .. og så skjuler den ikke teksten første gang man trykker på fx "Link #3".. Hvis man sørger for at trykke på "Link #1" først, så virker det upåklageligt.. hvordan kan dette tilrettes, så den hvis man efter sidens load trykker på "Link #3" så lukker den id="text_1"?
Avatar billede cronaldo Nybegynder
21. december 2008 - 19:40 #8
Har fundet svaret :P .. det var jo i den der onload ;) .. hehe
send et svar :)
Avatar billede olebole Juniormester
21. december 2008 - 19:41 #9
Her sætter du den, der er åben fra start:

window.onload = function() {
    oActive = [document.getElementById("text_3"), document.getElementById("head_3")];
}
Avatar billede olebole Juniormester
21. december 2008 - 19:41 #10
Hehe ... præcis!  *<|;o)
Avatar billede olebole Juniormester
21. december 2008 - 19:43 #11
PS: Der er masser af måder at gøre det på - ligesom markup-koden også kan udformes på mange måder. Dette er blot én mulighed  =)
Avatar billede cronaldo Nybegynder
21. december 2008 - 22:40 #12
Tak for de hurtige svar, OleBole :)
.. og glædelig jul til dig :)
Avatar billede olebole Juniormester
21. december 2008 - 22:43 #13
Selvtak - tak for points - og i lige måde  *<|;o)
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