Jquery script werkt niet

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Jan Graneker

Jan Graneker

10/07/2017 21:52:44
Quote Anchor link
Beste Leden,

Wie kan mij verder op weg helpen. Ik heb de volgende code: https://jsfiddle.net/1rphcq65/1/
Nu werkt de display:none van de content nog niet.

Ziet iemand de fout en heeft wellicht iemand voor mij de 'normale' JavaScript/Vanille hiervoor?
 
PHP hulp

PHP hulp

19/04/2024 12:02:36
 
Dennis WhoCares

Dennis WhoCares

10/07/2017 21:59:36
Quote Anchor link
Bij mij wordt content gewoon verborgen hoor als je op de logo klikt
wellicht moet je je cache even legen?
 
Jan Graneker

Jan Graneker

10/07/2017 22:05:36
Quote Anchor link
Het doel is alle content te hidden, behalve de eerste.

Vervolgens als je op het 2de logo klikt moet de content van het eerste logo hidden, die van de 2de verschijnen.
 
Thomas van den Heuvel

Thomas van den Heuvel

11/07/2017 01:46:26
Quote Anchor link
Je zult moeten onthouden waar je op geklikt hebt. Verder denk ik niet dat "content" een geldige waarde is voor de CSS-property "display" :p.

En je moet waarschijnlijk ook op een of andere unieke manier kunnen nagaan waar je precies op geklikt hebt, nu hebben alle data-id velden dezelfde naam.

Wat mij ook vreemd overkomt is dat je refereert aan een echt id (je gebruik het hash-teken (#)) maar in je HTML komen geen id's voor?
 
Dennis WhoCares

Dennis WhoCares

11/07/2017 06:43:21
Quote Anchor link
inderdaad oals thomas aangeeft zijn je classes niet uniek. Je zou voor elk blokje class="content" ook een andere naam kunnen geven.
En de logo's hun eigen functie geven waar je kan aangeven welke class die moet verbergen.
En of met id's werken, logo een id geven, waarbij je die id ook gebruik in de content bijv. id=content_1, dan heb je maar 1 functie nodig.

@Thomas, content is wel degelijk een css attribuut. Ik gebruik het weleens op tables om het van horizontaal naar verticaal te veranderen en dan de 1e td een content te geven via css :)
Of t correct is zoals Jan ermee omgaat is een ander verhaal

p.s. bij mij werkt het nooit fijn om een string te combineren om als jQ object te gebruiken. Ik maak altijd een var waar ik # en de naam combineer bij dynamische objecten, die ik vervolgens in $(myVar)... gebruik
Gewijzigd op 11/07/2017 06:44:59 door Dennis WhoCares
 
Jan Graneker

Jan Graneker

11/07/2017 11:41:17
Quote Anchor link
Stel dat ik de logo's een eigen functie geeft en deze koppel aan de content.
Dan moet ik alsnog communiceren dat wanneer content block 1 op display staat de rest gehide moet worden.

Ik ben nog geen kei in JS vooral jquery niet. Ff globaal wat ik wil doen.

Klik je op logo 1, dan moet content block1 verschijnen.
Klik je op logo 2, dan moet content block2 verschijnen.

Hoe zit ik dit heel basic kunnen oplossen met pure JS.
Gewijzigd op 11/07/2017 11:41:45 door Jan Graneker
 
Dennis WhoCares

Dennis WhoCares

11/07/2017 12:20:28
Quote Anchor link
Hi Jan,

geef je contentblocks allemaal een id="block1" , block2, block3
en een class="somecontent"
Logo's een class="logo" en id="1" nummer welke correspondeerd met de nummers van block1, 2, 3 enz
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
$('.logo').on("click",function() {
    var curID = $(this).attr("id"); //Verkrijg de id van het geklikte logo
    var contentBlock = "#block" + curID; //Maak string met de corresponderende block

    $('.somecontent').hide(); //Verberg alle blocks met class="somecontent"
    $(contentBlock).show(); //contentBlock weergeven
});


zoiets ?
 
Jan Graneker

Jan Graneker

11/07/2017 16:40:16
Quote Anchor link
Precies wat ik zocht Dennis. Bedankt dit is echt een super goede oplossing.
 



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.