Avatar billede bremer Nybegynder
06. maj 2010 - 12:30 Der er 15 kommentarer og
1 løsning

Multi Hidde - Hvordan gør man!?

Hej Alle sammen,

Er der nogen som kan hjælpe med, at finde ud hvad hvordan man laver en multi hide, - Det som jeg vil prøve at lave.

herunder er min kode som virker helt ok, men hvis jeg vil prøve at indsætte én "DIVBOX2" eller flere, virker den ikke :(

Hvad skal jeg gøre, for at den kan komme til at virke !?
Måske et array?! - Hjælp! :)

KODE:
<?php echo $key_onclick; ?>="showandhide_hidden('DIVBOX1');return false;

java script:
function showandhide_show(target1Id){
 
  if (document.getElementById)
        {
        target1 = document.getElementById(target1Id);
       
            if (target1.style.display == "none")
                {target1.style.display = "";}
        }
}
Avatar billede olebole Juniormester
06. maj 2010 - 12:36 #1
<ole>

Prøv at vise noget mere kode og forklar præcis, hvad du gerne vil  =)

/mvh
</bole>
Avatar billede bremer Nybegynder
06. maj 2010 - 12:47 #2
Tja, men koden er bare den - ønsker bare at kunne hide flere id'er ind "bare" én. - udfra denne function "showandhide_show" - ved bare ikke hvordan jeg skal lave den om, så det kan komme til at virke. :)
Avatar billede olebole Juniormester
06. maj 2010 - 13:12 #3
Nej, du må da have noget HTML-kode, scriptet skal virke på. Uden at vide noget om den, kan jeg ikke hjælpe
Avatar billede showsource Seniormester
06. maj 2010 - 13:28 #4
Dette hjalp ole mig engang med :O)

function close_other($id) {

var id_vars = new Array();
var elms = document.getElementsByTagName("div");

<!-- div som IKKE skal skjules -->
var nodisp = {'uploadfelter':true,'img_pre':true,'apache_div':true};

  for(i=0,im=elms.length;im>i;i++){
    if(!nodisp[elms[i].id]) {
    id_vars.push(elms[i].id);
    }
  }

var ialt = 0;
var len = id_vars.length;

    while( ialt < len ) {

        if($id != id_vars[ialt]) {
        $bcontent = document.getElementById(id_vars[ialt]);
        $bcontent.display = 'none';
        $bcontent.visibility = 'hidden';
        }

    ialt++;

    }
}
Avatar billede olebole Juniormester
06. maj 2010 - 13:47 #5
Det gjorde jeg sikkert, men det kunne være rart med en god (ehhhh ... endnu bedre) løsning  :D
Avatar billede bremer Nybegynder
06. maj 2010 - 13:55 #6
@OLE - min HTML ser sådan her ud:

MIN HTML:
<div class="fl" style="padding-top:10px;"><a href="#" onclick; ?>="showandhide_hidden('DIV1');return false;><img src="<?php echo $website_url;?>/images/knapper/images.png" title="" alt=""/></a></div>               


MIN JAVASCRIPT FUNKTION:
<?php echo $key_onclick; ?>="showandhide_hidden('DIVBOX1');return false;

java script:
function showandhide_show(target1Id){

  if (document.getElementById)
        {
        target1 = document.getElementById(target1Id);
     
            if (target1.style.display == "none")
                {target1.style.display = "";}
        }
}
Avatar billede olebole Juniormester
06. maj 2010 - 14:02 #7
showsource >> Man kunne (måske) yderligere indsnævre antallet af elementer, der bliver kørt igennem. Det kunne jo også være noget à la:

var oActive = null;
function showHide(sID) {
    if (oActive) oActive.style.display = "none";
    oActive = document.getElementById(sID);
    if (oActive) oActive.style.display = "block";
}

Blot fordi spørgeren beder om et 'multi-hide' script, er der jo ingen, der siger, det er, hvad han egentlig ønsker eller har brug for  ;o)

bremer >> Det er koden til den ultimativt mindste webside, jeg nogensinde har set! Hvis du kun har ét eneste element på siden, hvorfor skal du så bruge et script, der kan gemme flere?

Mere kode ...?
Avatar billede bremer Nybegynder
06. maj 2010 - 14:09 #8
@OLE - Jeg forstår, men det var ideen ud fra en tanke :) - så der er ikke så meget mere...
Avatar billede bremer Nybegynder
06. maj 2010 - 14:18 #9
function showHide - virker desværre ikke :)
Avatar billede olebole Juniormester
06. maj 2010 - 14:24 #10
Jo, den funktion fungerer aldeles perfekt ... lige efter planen. Spørgsmålet er blot stadig: Hvad er mon din plan?
Avatar billede olebole Juniormester
06. maj 2010 - 14:26 #11
- og et virkende eksempel:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Untitled Document</title>
<script type="text/javascript">
var oActive = null;
function showHide(sID) {
    if (oActive) oActive.style.display = "none";
    oActive = document.getElementById(sID);
    if (oActive) oActive.style.display = "block";
}
</script>
</head>
<body>

<p>
    <button onclick="showHide('foo')">Foo</button>
    <button onclick="showHide('bar')">Bar</button>
    <button onclick="showHide('fooBar')">FooBar</button>
</p>

<div style="display:none" id="foo">Foo</div>
<div style="display:none" id="bar">Bar</div>
<div style="display:none" id="fooBar">FooBar</div>

</body>
</html>
Avatar billede bremer Nybegynder
06. maj 2010 - 19:57 #12
okay - vi snakker lidt forbi hinanden :)

HTML'en /Koden; som jeg søger efter, med lyse og lygte efter er:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Untitled Document</title>
</head>
<body>

<p>
<button onclick="showHide('div1','div2','div3')">KNAP</button>
</p>

<div style="display:none" id="div1">DIV1</div>
<div style="display:none" id="div2">DIV2</div>
<div style="display:none" id="div3">DIV3</div>

</body>
</html>
Avatar billede olebole Juniormester
06. maj 2010 - 21:49 #13
Ja, vi snakker helt klart forbi hinanden, og vi kommer det nok ikke nærmere. Brug den fra #4  =)
Avatar billede hekro Nybegynder
07. maj 2010 - 09:11 #14
Er det ikke bare at tilføje en parameter mere?

For eksempel:
function setDisplay(div1,status1,div2,status2) {
document.getElementById(div1).style.display=status1;
if (div2 > '') document.getElementById(div2).style.display=status2;
}

Kaldet kunne så se sådan ud:
setDisplay('target1','none','target2,'none');
Avatar billede intenz Novice
07. maj 2010 - 11:37 #15
Du kan bruge 'arguments' til at kunne sende et vilkårligt antal parametre til en funktion.
Og du kan derfor løse dit problem med:


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Untitled Document</title>
</head>
<script type="text/javascript">
function showHide() {
    for( var i = 0; i < arguments.length; i++ ) {
        e = document.getElementById(arguments[i]);
        var act = (e.style.display == "none") ? "block" : "none";
        e.style.display = act;
    }
}
</script>
<body>

<p>
<button onclick="showHide('div1','div2','div3')">KNAP</button>
</p>

<div style="display:none" id="div1">DIV1</div>
<div style="display:none" id="div2">DIV2</div>
<div style="display:none" id="div3">DIV3</div>

</body>
</html>
Avatar billede bremer Nybegynder
07. maj 2010 - 19:56 #16
@intenz = SUPER - lige præcis!!!!
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