I want to create a filter function in jQuery. Therefore, when someone clicks on a category, he will only show the elements of this category. I have some functions, but I cannot get them to work.
I want to check if data-filter`data-cat matches from the list of categories. If so, I want to show a message that matches the form.
How am I wrong?
HTML:
<div class="grid_12" id="category-nav">
<ul id="category" class="list-of-links centered">
<li><a href="#" class="current-cat" data-filter="rondvaart">Rondvaart</a></li>
<li><a href="#" data-filter="wandelingen">Wandelingen</a></li>
<li><a href="#" data-filter="rondleidingen">Rondleidingen</a></li>
<li><a href="#" data-filter="groepsarrangementen">Groepsarrangementen</a></li>
</ul>
</div>
<article class="post" data-cat="wandelingen">
<header>
<p class="byline">Rondvaart</p>
<h2>Binnendieze</h2>
</header>
</article>
<article class="post" data-cat="rondleidingen">
<header>
<p class="byline">Rondvaart</p>
<h2>Binnendieze</h2>
</header>
</article>
<article class="post" data-cat="wandelingen">
<header>
<p class="byline">Rondvaart</p>
<h2>Binnendieze</h2>
</header>
</article>
<article class="post" data-cat="groepsarrangnementen">
<header>
<p class="byline">Rondvaart</p>
<h2>Binnendieze</h2>
</header>
</article>
Jquery:
var posts = $('#activiteiten .post');
posts.hide();
$( "#category li a" ).click(function() {
var customType = $( this ).data();
console.log(customType);
console.log(posts.length);
$('#activiteiten .post').each(function() {
data = posts.data();
console.log(data);
if( data == customType ){
alert("equal");
}
});
});
source
share