javascript hide or show

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Arnold C

Arnold C

06/11/2009 13:45:00
Quote Anchor link
Hallo mensen,

Ik zit nu de hele ochtend te staren naar een stukje javascript (jquery). Mn bedoeling is dat een divje getoond wordt wanneer een checkbox aangevinkt is en weer wordt verborgen (hide) wanneer de checkbox uitgevinkt is.

De onderstaande code werkt goed wanneer ik een checkbox aanklik en direct weer uitklik.
Echter, wanneer ik bv checkbox 1 aanzet, dan checkbox 2 aanvink (dan verschijnen 2 divjes) en dan checkbox 1 uitvink, verdwijnt de div die is verschenen bij het klikken op checkbox 1 niet.

Ik snap niet waar het fout gaat.

Dit is de code:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
$(document).ready(function(){
//Hide div with class extra
    $(".extra").css("display", "none");
    
    // Add onclick handler to checkbox with class checkme
    $(".checkme").click(function(){
        // put the value for the id of this checkbox in var tonen
        var tonen = this.id;
        
        // If checked
        if ($(".checkme").is(":checked")) {
            //show the hidden div that has a class extra and with the same id as the checked checkbox
            $(".extra[id=" + tonen + "]").show("fast");
        }
        else {
            //otherwise, hide it
            $(".extra[id=" + tonen + "]").hide("fast");
        }
    });
    
});


Hoe maak ik dat steeds direct de div verdwijnt/verschijnt wanneer ik de corresponderende checkbox aan / uit vink.

Tips of aanwijzingen?
 
PHP hulp

PHP hulp

24/11/2024 06:17:33
 
Mitchell

Mitchell

06/11/2009 14:38:00
Quote Anchor link
Extra if toevoegen en checken of je checkme box is aangevinkt of niet. Zo niet, dan sluiten, zo wel, openen.
 

06/11/2009 15:06:00
Quote Anchor link
Kan je dan sowieso niet beter met toggle werken?
 
Arnold C

Arnold C

06/11/2009 15:56:00
Quote Anchor link
Ik wil voor de interface in ieder geval graag checkboxes gebruiken.

@Karl: toggle moet zeker ook kunnen....als beginner vond ik dit al heel mooi bij elkaar gegoogled.....maar dan moet nog steeds mn if else goed werken toch? Daar zit nu hoe dan ook iets fout

@Mitchell: dan snap ik toch de if else zoals ik em nu heb niet helemaal goed. Hoe controleer ik dan op uitvinken? In regel 10 staat toch zoiets als "if aangevinkt" en daarna in regel 14 "else"....dat zou toch voldoende moeten zijn.....wat zou ik dan moeten toevoegen?

Of: hoe kan ik expliciet controleren op 'uitvinken'?
 
Jaron T

Jaron T

06/11/2009 16:04:00
Quote Anchor link
Hier een stukje javascript zonder framework ;)
Had ik toevallig gister gemaakt, dit is makkelijk om te bouwen in jouw checkbox situatie .. misschien dat je er iets aan hebt ;)

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<script type="text/javascript">
function hide(element,div)
{
    document.getElementById(div).style.display='none';
    document.getElementById('show').style.display='';
    element.style.display='none';
}

function show(element,div)
{
    document.getElementById(div).style.display='';
    document.getElementById('hide').style.display='';
    element.style.display='none';
}
</script>

<button style="width:100px;" onclick="hide(this,'tekst');" id="hide">Hide</button>
<button style="width:100px; display:none;" onclick="show(this,'tekst');" id="show">Show</button>
Gewijzigd op 01/01/1970 01:00:00 door Jaron T
 
Arnold C

Arnold C

08/11/2009 09:12:00
Quote Anchor link
Hebbes!
Om het topic af te kunnen ronden:

Toch aan de slag met Karl zijn tip om dit toch maar via 'toggle' te doen. Ik zag pas na een tijdje in dat dat veel voordeel biedt: door het 'display' te togglen heb ik die (voor mij) ingewikkelde ckeck op aangevinkt of uitgevinkt niet nodig. Immers op een klik laat ik em togglen.

Verder wilde ik het graag zo, dat de code eenvoudig generiek te maken is: dat ie het ook doet bij 10 checkboxes met 10 verborgen stukjes.
De javascript kun je eenvoudig in een separaat bestand plaatsen:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
    <head>
        <script src="http://code.jquery.com/jquery-latest.js">
        </script>
        
        <script>
            $(document).ready(function(){
                
                // newbies: the ^ means "begins with"
                // alle <p> met een class die begint met extra worden verborgen
                $('p[class^=extra]').css("display", "none");
                
                // als er geklikt wordt op element met class check
                $(".check").click(function(){
                    // variabele declareren om de juiste class te kunnen aanroepen
                    var a = 'extra' + this.id;
                    // de class togglen
                    $("."+a).toggle();
                });
                
            });
        </script>
        
    </head>
    <body>
        <form>
            <input type="checkbox" class="check" id="1" name="eerste" value="Bike" />
            <br/>
            <p class="extra1">
                eerste
            </p>
            <input type="checkbox" class="check" id="2" name="tweede" value="Car" />
            <br/>
            <p class="extra2">
                tweede
            </p>
        </form>
    </body>
</html>
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.