Panelen



Forumnavigering
Senast inloggade
RSS
Sponsorer

Forum > Klientspråk > JavaScript

Dölja när annnat lager visas

avse
avse

Gradering

#18382

Hej!

Har denna kod för att visa och dölja innehåll. Men jag vill att man bara ska kunna ha ett "lager" öppet i taget. Någon som vet hur jag ska göra?

<script language="JavaScript" type="text/javascript"> 
function openWin(url, w, h, scroll){
  if (!scroll) {
      scroll=0;
  }
  else {
      scroll=1;
  }
  t = (screen.height - h)/2;
  l = (screen.width - w)/2;
  popup=window.open(url, '', 'width='+w+', height='+h+', top='+t+', left='+l+', status=1, scrollbars='+scroll);
  popup.focus();
}
function expandera(id) {
get_id = document.getElementById('exp'+id).style.display;
if (get_id == 'block') {
document.getElementById('exp'+id).style.display="none";
}
else {
document.getElementById('exp'+id).style.display="block";
}
}
</script>

/ANdreAs
Redigerades av Shadi den 3 november 2009. Läs tidigare inlägg.
Redigerades av avse den 3 november 2009. Läs tidigare inlägg.
ID: #18382 | Skapades: 2009-11-03 19:28:08 | Tråden har 5 svar och har lästs 397 gånger.

voigtan
voigtan

Gradering

#18383

Vilken kod?

Hur man ställer en fråga: http://support.microsoft.com/kb/q555375
ID: #18383 | Skapades: 2009-11-03 19:28:52

avse
avse

Gradering

#18384

Citerar voigtan:

Vilken kod?

Sorry, glömde koden.

/ANdreAs
ID: #18384 | Skapades: 2009-11-03 19:44:46

voigtan
voigtan

Gradering

#18386

Okej, du infogar en hel del irrelevant kod, men problemet med din kod är att du inte har ett "index" eller en "startpunkt" på vad som är menyn, för att göra det så mycket enklare: Kör Jquery eller annat ramverk för att mer kontroll på dina DOM objekt, sen vad är det för HTML kod?

Men om du måste behålla den kod du har idag:

var oldObject;
function expandera(id) {
    if(oldObject==null) {
        oldObject = document.getElementById('exp'+id);
        oldObject.style.display ="block";
    }
    else {
        //There is an old object showing, hide it!
        oldObject.style.display = "none";
        oldObject = null;
        //Call the function again to set a new object to show
        expandera(id);
    }
}

Hur man ställer en fråga: http://support.microsoft.com/kb/q555375
Redigerades av voigtan den 3 november 2009. Läs tidigare inlägg.
ID: #18386 | Skapades: 2009-11-03 19:50:02

avse
avse

Gradering

#18387

Citerar voigtan:

Okej, du infogar en hel del irrelevant kod, men problemet med din kod är att du inte har ett "index" eller en "startpunkt" på vad som är menyn, för att göra det så mycket enklare: Kör Jquery eller annat ramverk för att mer kontroll på dina DOM objekt, sen vad är det för HTML kod?

Men om du måste behålla den kod du har idag:

var oldObject;
function expandera(id) {
    if(oldObject==null) {
        oldObject = document.getElementById('exp'+id);
        oldObject.style.display ="block";
    }
    else {
        //There is an old object showing, hide it!
        oldObject.style.display = "none";
        oldObject = null;
        //Call the function again to set a new object to show
        expandera(id);
    }
}

Jag kör på samma kod. Din kod fungerade. Tack. Men hur gör jag för att "lagret" ska stängas igen när man trycker på det?

Kan verkligen inget om detta.

/ANdreAs
ID: #18387 | Skapades: 2009-11-03 20:37:55

voigtan
voigtan

Gradering

#18388

var oldObject;
function expandera(id) {
    if(oldObject==null) {
        oldObject = document.getElementById('exp'+id);
        oldObject.style.display ="block";
    }
    else {
        //There is an old object showing, hide it!
        oldObject.style.display = "none";
        var oldId = oldObject.id;
        oldObject = null;
        if(oldId!='exp'+id) // If oldId is different from the new one, expand it.
            expandera(id);
    }
}
Bara att läsa vad koden gör och anpassa den...

Hur man ställer en fråga: http://support.microsoft.com/kb/q555375
ID: #18388 | Skapades: 2009-11-03 20:41:15
© Copyright 2007-2009 Shadi Domat | Version 3.0 | Sidkarta | Policy