andy
andy

Reputation: 2754

Remove/add class on click of a button

I'd like to be able to remove one class from a div and add another upon the click of a button. But I can't get it to work.

<div class="hiddennav displaynone">
  <ul>
    <?php wp_nav_menu(array('menu' => 'Main Nav menu')); ?>
  </ul>
</div> <!-- end div hiddennav -->
<div class="fixednav">
  <div class="shownav"><a href="#" class="shownavbutton"></a></div>
  <!-- end div shownav -->
</div> <!-- end div fixednav -->

Here's the jQuery:

$(document).ready(function(){
  $(".shownavbutton").click(function() {
    $(".hiddennav").removeClass("displaynone").addClass("displayblock");
  });

I'd preferably want it to toggle the classes too when clicked multiple times.

Upvotes: 2

Views: 9516

Answers (2)

mbeasley
mbeasley

Reputation: 4874

Try $(selector).toggleClass(class):

$(document).ready(function(){ 
    $(".shownavbutton").click(function() { 
        $(".hiddennav").toggleClass("displaynone").toggleClass("displayblock");
    });
});

Optionally, you could use the CSS method as well (assuming that this is all you're accomplishing via your displaynone and displayblock classes):

$(".hiddennav").toggle(function() {
    $(this).css('display','none');
}, function() {
    $(this).css('display','block');
});

Upvotes: 5

Sushanth --
Sushanth --

Reputation: 55740

Try this

 $(".hiddennav").toggleClass("displaynone displayblock");

Upvotes: 0

Related Questions