Kan class wel toevoegen maar daarna met body click niet verwijderen. Waarom gaat dit niet?
Door
Jaco Grinwis
op 19-08-2015 19:21
gewijzigd op 19-08-2015 20:01
3.760 views
<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body>
<button class="btn btn-default">click</button>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
<script>
$( function() {
// Click op button om de overlay te laten zien
$( "button" ).on( "click", function() {
$( "body" ).addClass( "overlay" );
});
// Click op de body om de overlay te laten verdwijnen
$( "body.overlay" ).on( "click", function() {
$( "body" ).removeClass( "overlay" );
});
});
</script>
</body>
</html>
Als ik op de button klik dan voegd hij gewoon de overlay class toe aan de body tag.
Maar als ik dan klik in de body zou hij de overlay class moeten verwijderen alleen dat doet hij niet en geeft ook geen error via de console. Ik weet niet waarom dit niet lukt.
ik heb ook geprobeerd met
[tab]"Beste fietsenmaker, hier is mijn fiets. Hij werkt niet. Ik ga er vanuit dat het morgen is opgelost. Fijne dag verder en tot morgen![/tab]
Denk je dat de fietsenmaker nu enig idee heeft wat ie moet doen? Ik denk het niet...
Verander nu die fietsenmaker eens in ons en de fiets in jouw code. Je titel "Waarom werkt dit niet" zegt niet echt veel en vervolgens toon je alleen code. Wat wil je bereiken? Wat gebeurd in de plaats van dat? Wat heb je gedaan om het op te lossen? Waar denk jij dat het aan ligt?
Heb de titel aangepast zat zo lang op mijn scriptje te ergere dat ik vergat een goede title met beschrijving te geven. Had het geen wat ik wilde al op zoveel manieren gedaan het wilde niet lukken vandaar op de duur beetje in de stres. Dit sitje code is natuurlijk maar een deeltje van het grote geheel.
- waarom zou je de overlay class aan je body hangen - zou het niet veel praktischer zijn als je een divje aan je DOM toevoegt waar je voorgenoemde class aanhangt, of je zorgt dat deze div al in je pagina zit met display: none;
- hoe zie je overlay class er uit, en wat voor andere typen elementen bevinden zich normaal op je pagina's (waar je deze overlay overheen zet als dat de bedoeling is want dat wordt niet eens duidelijk uit je verhaal), lijkt mij niet heel onbelangrijk voor de beantwoording van je vraag
Ik heb nu nog alle in aparte div's maar wil dit anders omdat dit voor een plugin word voor een verschillende menus. Ik zet de overlay niet gelijk in de body maar body.overlay:after en ik wil het in de body tag omdat ik daar nog meer classen in zet voor deze plugin en ze zo overzichtelijk houd daar.