• Login
  • Register
  • Zoek
This Thread
  • Everywhere
  • This Thread
  • This Forum
  • Articles
  • Pages
  • Forum
  • Filebase Entry
  • More Options

ICTscripters

Dé plek voor IT

Dé plek voor IT

Login

Geavanceerde opties
  1. Home
  2. Forum
    1. Alle berichten
    2. Recente activiteiten
  3. ICT Nieuws
  4. Blog
  5. Marktplaats
    1. Werk
    2. Advertenties
    3. Domeinnamen
    4. Websites
    5. Design & lay-outs
    6. Scripts
    7. Overige
  6. Design
  7. Leden
    1. Actieve bezoekers
    2. Team
    3. Leden zoeken
  8. Downloads
  9. Goedkope domeinnamen
  1. Home
  2. Forum
    1. Alle berichten
    2. Recente activiteiten
  3. ICT Nieuws
  4. Blog
  5. Marktplaats
    1. Werk
    2. Advertenties
    3. Domeinnamen
    4. Websites
    5. Design & lay-outs
    6. Scripts
    7. Overige
  6. Design
  7. Leden
    1. Actieve bezoekers
    2. Team
    3. Leden zoeken
  8. Downloads
  9. Goedkope domeinnamen
  1. Home
  2. Forum
    1. Alle berichten
    2. Recente activiteiten
  3. ICT Nieuws
  4. Blog
  5. Marktplaats
    1. Werk
    2. Advertenties
    3. Domeinnamen
    4. Websites
    5. Design & lay-outs
    6. Scripts
    7. Overige
  6. Design
  7. Leden
    1. Actieve bezoekers
    2. Team
    3. Leden zoeken
  8. Downloads
  9. Goedkope domeinnamen
  1. Dé plek voor IT - ICTscripters
  2. Forum
  3. Scripting & programmeren
  4. (X)HTML + XML + CSS

Forum

  • Het oorspronkelijke Criminals Script

    Lijno 19 juni 2026 om 15:06
  • StraatBaas is back, maar hoe?!

    Syntax 17 juni 2026 om 10:28
  • RPG game gebouwd met AI

    Frenzo.Webservice 11 juni 2026 om 19:44
  • Het Grote Vibe Code Topic

    Syntax 1 juni 2026 om 20:05
  • PWYL source gezocht

    Syntax 29 mei 2026 om 14:03
  • Ictscripters Chat

    AarClay 21 april 2026 om 11:34
  • Help testers nodig voor android app Urgent

    Servertjee 20 februari 2026 om 12:07
  • Partner Gezocht om meerdere NFT Collecties op Open Sea te Plaatsen

    Servertjee 20 februari 2026 om 12:06

Marktplaats

  • 4-letter domein: Togi.nl

    evesi 17 juni 2026 om 17:08
  • 359 Nieuwe Domeinnamen Mei 2026

    shiga 1 juni 2026 om 12:45
  • Sicarras.com - Moderne Mafia Text-Based RPG

    Jeffrey.Hoekman 27 mei 2026 om 17:40

Categorie filter met jQuery

  • djordyh
  • 9 april 2014 om 19:15
  • djordyh
    Professional
    Berichten
    627
    • 9 april 2014 om 19:15
    • #1

    Hallo,

    Ik heb helaas erg weinig verstand van jQuery dus ik vraag me af hoe je het volgende maakt (of als iemand een kant en klare heeft zou helemaal mooi zijn):

    Ik heb een overzicht van downloads, op rijen van 4. Ze hebben allemaal hun eigen categorie.
    Hoe kan ik ervoor zorgen dat als ik in een dropdown bijvoorbeeld categorie 1 kiest, hij dan de div met alle rijen filtert zodat alleen de downloads met categorie 1 blijven staan? En dan zonder dat hij de pagina ververst, dat hij ze gewoon gelijk laad?

    Ik had dit gevonden en geprobeerd, maar dat werkt helaas niet met een dropdown.

    Kan iemand mij helpen?

    MVG,
    Djordy.

    Met vriendelijke groet,

    Djordy.

  • Guest, wil je besparen op je domeinnamen? (ad)
  • Dees
    Elite members
    Ontvangen Reacties
    64
    Articles
    1
    Berichten
    358
    • 9 april 2014 om 19:43
    • #2

    Misschien heb je hier wat aan?

    Met vriendelijke groet,

    Dees

  • DirkZz
    Intermediate
    Ontvangen Reacties
    29
    Berichten
    213
    • 9 april 2014 om 21:37
    • #3

    JSFiddle ligt er uit hier, dus dan maar zo.
    Even quick en dirty om je op weg te helpen.

    HTML
    <style>
        /* Snel wat markup, niet interessant. */
        div > div { width: 100px;height: 100px;text-align: center;float: left;background-color: #c0c0c0; margin: 10px;}
    </style>
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
    <script>
        function applyFilter(){
            /* Variabelen */
            var $categorieRijen, $teTonenCategorie;
    
    
            /* Alle rijen ophalen */
            $categorieRijen = $('.container > div');
    
    
            /* Welke categorie willen we tonen? Deze in de variabele $teTonenCategorie zetten */
            $teTonenCategorie = $('select[name="filter"]').val();
    
    
            /* Eerst alles op zichtbaar zetten */
            $categorieRijen.show();
    
    
            /* Wanneer de reset wordt aangereoepen, niets verbergen en alles zichtbaar laten.*/
            if($teTonenCategorie !== "reset") {
                /* Anders alle categorieen verbergen die niet de class hebben die voldoet aan het filter dat geselecteerd is in de dropdown */
                $categorieRijen.not('.' + $teTonenCategorie ).hide();
            }
        }
    </script>
    
    
    <select name="filter" onchange="applyFilter()">
        <option value="reset">reset</option>
        <option value="een">Een</option>
        <option value="twee">Twee</option>
        <option value="drie">Drie</option>
    </select>
    
    
    <div class="container">
        <div class="een"> Een </div>
        <div class="een"> Een </div>
        <div class="twee"> Twee </div>
        <div class="twee"> Twee </div>
        <div class="drie"> drie </div>
        <div class="een"> Een </div>
        <div class="drie"> drie </div>
        <div class="twee een"> een en twee </div>
    </div>
    Toon Meer

    Je geeft dus elk element een class mee met de categorienaam en zet deze ook in de filter selector.

    Bewerkt 4 keer, laatst door DirkZz (9 april 2014 om 21:58).

  • stijnhau
    Student
    Ontvangen Reacties
    3
    Berichten
    174
    • 9 april 2014 om 22:49
    • #4

    is inderdaad een goede oplssing dirkz maar noig iets beter vind ik het als je geen selectbox gebruikt maar option boxes zodat je kan zegge ik wil cat 1 & 3 zien bevoorbeeld.

    Check mijn projecten op stijnhau.be

  • DirkZz
    Intermediate
    Ontvangen Reacties
    29
    Berichten
    213
    • 10 april 2014 om 00:03
    • #5
    Citaat van stijnhau

    is inderdaad een goede oplssing dirkz maar noig iets beter vind ik het als je geen selectbox gebruikt maar option boxes zodat je kan zegge ik wil cat 1 & 3 zien bevoorbeeld.

    Is wel veel netter ja,

    Maar dan moet je wel goed opletten wanneer een item onder meerdere categorieën valt.

    EDIT:

    Dan krijg je dus dit:

    HTML
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
    <html lang="en">
    <head>
    	<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
    	<title>Document</title>
    	<style>
        	div > div { width: 100px;height: 100px;text-align: center;float: left;background-color: #c0c0c0; margin: 10px;}
    	</style>
    </head>
    <body>
    <div class="filterOpties">
    	<label for="een">Een</label>
    	<input id="een" class="filterOptie" type="checkbox" checked name="filterOptie" onchange="applyFilter(this)" value="een" />
    	<label for="Twee">Twee</label>
    	<input id="twee" class="filterOptie" type="checkbox" checked name="filterOptie" onchange="applyFilter(this)" value="twee" />
    	<label for="Drie">Drie</label>
    	<input id="drie" class="filterOptie" type="checkbox" checked name="filterOptie" onchange="applyFilter(this)" value="drie" />
    </div>
    
    
    <div class="container">
    	<div class="opmaak class een"> Een </div>
    	<div class="een"> Een </div>
    	<div class="twee"> Twee </div>
    	<div class="twee"> Twee </div>
    	<div class="drie"> drie </div>
    	<div class="een"> Een </div>
    	<div class="drie"> drie </div>
    	<div class="twee een">een en twee</div>
    </div>
    
    
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
    <script>
    	var $filterOpties;
    
    
    	$filterOpties = $('.filterOpties > input[type="checkbox"][name="filterOptie"]').map(function(){
        	return this.value;
    	});
    
    
    	var $hiddenCategories = [];
    
    
    	function applyFilter(element){
    
    
        	var $allElements, $isChecked;
    
    
        	$allElements = $('.container > div ');
        	$isChecked   =  $.inArray(element.value, $hiddenCategories);
    
    
        	if( $isChecked === -1  && element.checked === false) {
            	$hiddenCategories.push( element.value );
        	} else if  ( $isChecked !== -1 && element.checked === true ) {
            	$hiddenCategories.splice($isChecked, 1);
        	}
    
    
        	$.each($allElements, function (i, el){
            	var $shouldHide;
    
    
            	$shouldHide = $(el).map(function(){
    
    
                	var filterMatches, aantalFilterOpties, context;
    
    
                	context = this;
                	filterMatches = aantalFilterOpties = 0;
    
    
                	$.each($filterOpties, function(x, filterOptie){
                    	if( context.className.contains(filterOptie) ){
                        	aantalFilterOpties ++;
                    	}
                    	if ( context.className.contains(filterOptie) && $.inArray(filterOptie, $hiddenCategories ) !== -1 ) {
                        	filterMatches++;
                    	}
                	});
    
    
                	return { hide: (aantalFilterOpties !== filterMatches),  element: i};
            	});
    
    
            	$.each($shouldHide, function(toHide, divElement){
                	$($allElements[divElement.element]).toggle(divElement.hide);
            	});
    
    
        	});
    	}
    </script>
    </body>
    </html>
    Toon Meer

    Bewerkt 2 keer, laatst door DirkZz: opmaak (10 april 2014 om 00:59).

  • djordyh
    Professional
    Berichten
    627
    • 10 april 2014 om 18:23
    • #6

    Bedankt DirkZz!

    Heb het ingebouwd en het werkt :D
    Wist ook niet dat het relatief simpel was, al die plugins hadden echt codes van honderde lijnen ?(

    Met vriendelijke groet,

    Djordy.

Participate now!

Heb je nog geen account? Registreer je nu en word deel van onze community!

Maak een account aan Login

ICT Nieuws

  • Quanscient ontvangt €10M om AI- en kwantum-native hardware engineering te bevorderen - Tech.eu

    ICTscripters 27 mei 2026 om 12:03
  • Datalek bij leverancier Canvas - Universiteit van Amsterdam

    ICTscripters 10 mei 2026 om 12:03
  • Data privacy in 2026: Hoe de naleving van GDPR verandert

    ICTscripters 8 mei 2026 om 12:16

Blogs

  • Functioneel ontwerp

    Dees 28 december 2014 om 12:38
  • Access Control List implementatie in PHP/MySQL - deel 1/2

    FangorN 28 december 2018 om 12:35
  • Access Control List implementatie in PHP/MySQL - deel 2/2

    FangorN 29 december 2018 om 12:37
  1. Marktplaats
  2. Design
  3. Voorwaarden
  4. Ons team
  5. Leden
  6. Geschiedenis
  7. Regels
  8. Links
  9. Privacy Policy
ICTscripters ©2005 - 2026 , goedkope hosting door DiMoWeb.com, BE0558.915.582
Sponsors: Beste kattenhotel provincie Antwerpen | Beste Zetes eid kaartlezer webshop
Style: Nexus by cls-design
Stylename
Nexus
Manufacturer
cls-design
Licence
Commercial styles
Help
Supportforum
Visit cls-design