• 0

2nd menu option with jQuery


Question

http://www.romabio.com/products/preview.html <--- My Example /

http://www.redbox.com/movies <--- What I'm trying to do /

https://www.neowin.net/forum/topic/1131050-jquery-quicksand/ <--- First post about this /

If you remember, I was trying to get quicksand working and someone help me with doing a short jQuery code to do the same thing. Well, everything is working great with just doing one menu but now. I would like to add on to it so that their is a second option for the user to select. I provided the link to My Example. I don't know how to right the code in jQuery so that the user can also sort the list in to Interior or Exterior like they did in the Redbox movie list. I don't think it would be really hard for someone that knows jQuery to quickly right the code for me. I'm more of a front-end web designer and then a back-end one.

I put the code below but not all of the product DIV code because it's mostly the same thing just the li class and h1 is different.


<div id="dropdown">
<ul class="filter">
<li>Product Information List
<ul>
<li class="current"><a href="#">All Products</a></li>
<li><a href="#">Limewash Products</a></li>
<li><a href="#">Slaked Lime Plasters</a></li>
<li><a href="#">3.5 NHL Cements</a></li>
<li><a href="#">Potassium Silcate Paints</a></li>
<li><a href="#">Silossanic Paints</a></li>
<li><a href="#">Stain & Varnishes</a></li>
<li><a href="#">Specialty Products</a></li>
</ul>
</li>
</ul>
</div>
<div id="dropdown2">
<ul class="filter">
<li class="current"><a href="#">All</a></li>
<li id="drop2"><a href="#">Interior</a></li>
<li id="drop3"><a href="#">Exterior</a></li>
</ul>

</div>
</div>




<ul class="items">

<li class="Limewash Products">
<a href="#"><div class="science-list shadow horizontal">
<img src="https://placehold.it/300x159" alt="" longdesc="" />
<h1>BioCalce Classico</h1>
</div></a>
</li>

<li class="Limewash Products">
<a href="#"><div class="science-list shadow horizontal">
<img src="https://placehold.it/300x159" alt="" longdesc="" />
<h1>BioCalce Classico A</h1>
</div></a>
</li>

</ul>
[/CODE]

[CODE]
<script type="text/javascript">
$('.filter li a').click(function() {

$(this).css('outline','none');
$('.filter .current').removeClass('current');
$(this).parent().addClass('current');

var filter = $(this).text();
if(filter == 'All Products') {
$('.items li.hidden').fadeIn('normal').removeClass('hidden');
} else {
$('.items li').each(function() {
if(!$(this).hasClass(filter)) {
$(this).fadeOut('normal').addClass('hidden');
} else {
$(this).fadeIn('normal').removeClass('hidden');
}
});
}

return false;
});

</script>
[/CODE]

Link to comment
https://www.neowin.net/forum/topic/1132088-2nd-menu-option-with-jquery/
Share on other sites

7 answers to this question

Recommended Posts

  • 0

I can probably help you with this, but I'm not entirely sure what you are trying to accomplish...which part of the redbox menu are you trying to mimic? Is it the sorting functionality?

  • 0

Alright, I figured it out. It's kind of sloppy, but it gets the desired effect. You will still need to add in the Interior or Exterior class to each of your products, and change the class name for the second menu to "filter_2" for it to work. Other than that, you shouldn't have any issues. Here is the jQuery:


$('.filter li a').click(function() {

$(this).css('outline','none');
$('.filter .current').removeClass('current');
$(this).parent().addClass('current');

var filter = $(this).text();
var filter_2 = $('.filter_2 .current').text();
if(filter == 'All Products') {
if (filter_2=='All') {
$('.items li.hidden, .items h2.hidden').fadeIn('10000').removeClass('hidden');
}
else {
$('.items li, .items h2').each(function() {
if (!$(this).hasClass(filter_2)) {
$(this).fadeOut('10000').addClass('hidden');
}
else {
$(this).fadeIn('10000').removeClass('hidden');
}
});
}
}
else {
$('.items li, .items h2').each(function() {
if (filter_2=='All') {
if (!$(this).hasClass(filter)) {
$(this).fadeOut('10000').addClass('hidden');
}
else {
$(this).fadeIn('10000').removeClass('hidden');
}
}
else if(!$(this).hasClass(filter)) {
$(this).fadeOut('10000').addClass('hidden');
}
else if (!$(this).hasClass(filter_2)) {
$(this).fadeOut('10000').addClass('hidden');
}
else {
$(this).fadeIn('10000').removeClass('hidden');
}
});
}

return false;

});
$('.filter_2 li a').click(function() {
$('.filter_2 .current').removeClass('current');
$(this).parent().addClass('current');
var filter_2 = $(this).text();
var top_filter = $('.filter .current').text();
$('.items li, .items h2').each(function() {
if (top_filter=='All Products') {
if (filter_2=='All') {
$('.items li.hidden, .items h2.hidden').fadeIn('10000').removeClass('hidden');
}
else if (!$(this).hasClass(filter_2)) {
$(this).fadeOut('10000').addClass('hidden');
}
else {
$(this).fadeIn('10000').removeClass('hidden');
}
}
else if (filter_2=='All') {
if (!$(this).hasClass(top_filter)) {
$(this).fadeOut('10000').addClass('hidden');
}
else {
$(this).fadeIn('10000').removeClass('hidden');
}
}
else if (!$(this).hasClass(top_filter)) {
$(this).fadeOut('10000').addClass('hidden');
}
else if (!$(this).hasClass(filter_2)) {
$(this).fadeOut('10000').addClass('hidden');
}
else {
$(this).fadeIn('10000').removeClass('hidden');
}
});
});
[/CODE]

  • 0

Here is the final and working code in case anybody wanted to see the solution:


$('.filter li a').click(function() {

$(this).css('outline','none');
$('.filter .current').removeClass('current');
$(this).parent().addClass('current');
var filter = $(this).text();
var filter_2 = $('.filter_2 .current_2').text();
if(filter == 'All Products') {
if (filter_2=='All') {
$('.items li.hidden, .items h2.hidden').fadeIn('10000').removeClass('hidden');
}
else {
$('.items li, .items h2').each(function() {
if (!$(this).hasClass(filter_2)) {
$(this).fadeOut('10000').addClass('hidden');
}
else {
$(this).fadeIn('10000').removeClass('hidden');
}
});
}
}
else {
$('.items li, .items h2').each(function() {
if (filter_2=='All') {
if (!$(this).hasClass(filter)) {
$(this).fadeOut('10000').addClass('hidden');
}
else {
$(this).fadeIn('10000').removeClass('hidden');
}
}
else if(!$(this).hasClass(filter)) {
$(this).fadeOut('10000').addClass('hidden');
}
else if (!$(this).hasClass(filter_2)) {
$(this).fadeOut('10000').addClass('hidden');
}
else {
$(this).fadeIn('10000').removeClass('hidden');
}
});
}
return false;

});
$('.filter_2 li a').click(function() {
$('.filter_2 .current_2').removeClass('current_2');
$(this).parent().addClass('current_2');
var filter_2 = $(this).text();
var top_filter = $('.filter .current').text();
$('.items li, .items h2').each(function() {
if (top_filter=='All Products') {
if (filter_2=='All') {
$('.items li.hidden, .items h2.hidden').fadeIn('10000').removeClass('hidden');
}
else if (!$(this).hasClass(filter_2)) {
$(this).fadeOut('10000').addClass('hidden');
}
else {
$(this).fadeIn('10000').removeClass('hidden');
}
}
else if (filter_2=='All') {
if (!$(this).hasClass(top_filter)) {
$(this).fadeOut('10000').addClass('hidden');
}
else {
$(this).fadeIn('10000').removeClass('hidden');
}
}
else if (!$(this).hasClass(top_filter)) {
$(this).fadeOut('10000').addClass('hidden');
}
else if (!$(this).hasClass(filter_2)) {
$(this).fadeOut('10000').addClass('hidden');
}
else {
$(this).fadeIn('10000').removeClass('hidden');
}
});
});
[/CODE]

This topic is now closed to further replies.
  • Recently Browsing   0 members

    • No registered users viewing this page.
  • Posts

    • MusicBee 3.6.9668 by Razvan Serea MusicBee is an application geared toward managing extensive music collections, easy to use and with a comprehensive feature set. It makes it easy to organize, find, and play music files on your computer, on portable devices, and on the Web. It provides playback of a wide range of audio formats, smart playlists with the ability to discover and play new music from the web, advanced tag editing with automated artwork and tag look up, folder monitoring, automated file re-organization, portable device synchronization, and secure CD ripping with AccurateRip verification. MusicBee features: Supported formats: MP3, AAC, M4A, MPC, OGG, FLAC, APE, TAK, WV, WMA and WAV. Audio CDs: Audio CD playback and ripping (with CD-Text capabilities) is supported. CD tracks can be ripped (in fast or secure mode) as individual files or as a single album with embedded cuesheet. Conversion: Conversion from and to all supported formats as metadata are preserved. Synchronization of tags only (in case that the output file already exists) instead of reencoding is possible. ReplayGain support: both playback and calculation. File Organization: Organization and renaming of music files into folders and files based on tag values such as artist, album, name, track number, etc. that can be specified. MusicBee can do this automatically for all files in a music library or the user can choose the files or folders themselves. Web Browsing: Browsing of the web using Mozilla's XULRunner environment. Scrobbling: Tracks played from MusicBee can optionally be scrobbled to Last.fm. Customizable user interface layout. Customizable keyboard shortcuts. MiniLyrics support Download: MusicBee 3.6.9668 | MusicBee Portable | ~9.0 MB (Freeware) Download: Windows Store Edition View: MusicBee Home page | Release Notes | Screenshot Get alerted to all of our Software updates on Twitter at @NeowinSoftware
    • On xiaomi hyperos there's also an option to disable google assistant. I've got everything disabled. Only thing I do have installed is a web wrapped for duck.ai which claims to let you use various AIs anonymously
    • I need to understand the rationale of not shipping all of these K2 improvements in a single update/release. It's giving "we will fix Windows 11 but no commitments". It seems to me that they just announce these improvements just to appease the community.
    • The term "RTM" is long gone starting with Windows 10. Every current release is a GA build. This is the result of MS making Windows as a Service (WaaS).
    • Looks like no official TBW rating, which should be a required listing in my opinion for sites like Amazon (hell, put it on the box too.)
  • Recent Achievements

    • Conversation Starter
      sumytbe earned a badge
      Conversation Starter
    • One Year In
      B4dM1k3 earned a badge
      One Year In
    • One Year In
      DarkWun earned a badge
      One Year In
    • Dedicated
      Almohandis earned a badge
      Dedicated
    • Dedicated
      JuvenileDelinquent earned a badge
      Dedicated
  • Popular Contributors

    1. 1
      +primortal
      516
    2. 2
      +Edouard
      186
    3. 3
      PsYcHoKiLLa
      87
    4. 4
      Michael Scrip
      79
    5. 5
      Steven P.
      73
  • Tell a friend

    Love Neowin? Tell a friend!