Avatar billede jesper-madsen Nybegynder
30. juli 2005 - 21:12 Der er 12 kommentarer og
1 løsning

JavaScript: Hvis en div er visible: hidden; skal den..

Et hurtigt spørgsmål, hvorfor vil den ikke:

if (document.getElementById('main').style.visibility == "visisble")){

?
Avatar billede nielle Nybegynder
30. juli 2005 - 21:15 #1
"visisble")){

- skal være:

"visible")){
Avatar billede erikjacobsen Ekspert
30. juli 2005 - 21:15 #2
Jeg plejer ikke at stave det sådan: visisble
Avatar billede jesper-madsen Nybegynder
30. juli 2005 - 21:17 #3
Selvom jeg har:
function connect()
{
if (document.getElementById('main').style.visibility = "visible")){
alert('Den er oppe');
} else {
alert('ikke oppe');
}
}

virker det ikke.
Avatar billede jesper-madsen Nybegynder
30. juli 2005 - 21:17 #4
-- hjælper heller ikke med 2 =
Avatar billede nielle Nybegynder
30. juli 2005 - 21:21 #5
Lyser mystisk. Prøv med noget debug-udskrivning:

function connect()
{
    alert("Devug: " + document.getElementById('main').style.visibility);

    if (document.getElementById('main').style.visibility == "visible"))
    {
        alert('Den er oppe');
    }
    else
    {
        alert('ikke oppe');
    }
}
Avatar billede jesper-madsen Nybegynder
30. juli 2005 - 21:24 #6
Kan ikke, den udskriver, fejl ved:
    if (document.getElementById('main').style.visibility == "visible"))
Avatar billede jesper-madsen Nybegynder
30. juli 2005 - 21:26 #7
function connect()
{
if (document.getElementById('main').style.visibility != "hidden"){
alert('oppe');
} else {
alert('nede');
}

}
Avatar billede nielle Nybegynder
30. juli 2005 - 21:34 #8
Det giver absolut ingen som helst mening at:

if (document.getElementById('main').style.visibility != "hidden"){

- skulle virke, men at:

if (document.getElementById('main').style.visibility == "visible")){

- ikke virker.

Bortset fra at jeg nu kan se hvad fejlen var... Du har en parentes for meget i visible versionen.
Avatar billede jesper-madsen Nybegynder
30. juli 2005 - 21:36 #9
Er glad for det virker :)
Avatar billede jesper-madsen Nybegynder
30. juli 2005 - 21:36 #10
Men, tak for hjælpen! Godt i ikke tænkte på point.
Avatar billede roenving Novice
31. juli 2005 - 01:53 #11
>>nielle

-- det giver faktisk god mening, at != 'hidden' virker, men == 'visible' ikke virker, for hvis man sætter et elements egenskab(er) i et stylesheet, vil det jo ikke være elementets egenskaber i javascript-sammenhæng men kun i css-sammenhæng ...

-- du kan _aldrig_ med js aftaste et elements style-egenskaber, medmindre det er sat inline på elementet eller sat direkte via javascript !-)
Avatar billede nielle Nybegynder
31. juli 2005 - 09:46 #12
Roenving> Det du forklarer er vel mere at det kan give god mening at ”!=” virker, men at ”==” ikke virker, frem for at ”!= 'hidden'”, men ”== 'visible'” ikke virker. Der er en subtil forskel her som jeg håber kommer igennem.

Så vidt jeg kan forstå din argumentation så er ”style.visibility” ganske simpelt udefineret, hvis visibility ikke er sat inline på elementet, men derimod er defineret i stylesheetet?

Nu har vi jo ikke set den konkrete HTML-kode så vi kan ikke sige noget om hvorvidt det var tilfældet lige her, men hvis det ikke var defineret inline så er værdien altså hverken ”hidden” eller ”visible” men derimod simpelthen undefined, og derfor vil ”!=” give den rigtige logik for både det udefinerede tilfælde og det tilfælde hvor den er sat til ”visible”. Hvorimod et specifikt tjek med ”==” på visible vil fejle for det ene af de to tilfælde.

Når det så er sagt så var der jo altså en fejl med parenteserne i den oprindelige kode, så mon ikke at det har en del af æren for at det ikke virkede? ;^)
Avatar billede roenving Novice
31. juli 2005 - 13:30 #13
Sikkert !-)

-- men jeg har altid været så doven, at jeg kigger efter algoritmer, som vil virke uanset hvad jeg selv gør, og da den negative virker uanset om jeg sætter den inline eller i stylesheet bruger jeg konsekvent den !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