Code has been added to clipboard!

jQuery .toggleClass(): Remove or Add Classes to Elements

Reading time 1 min
Published Jan 24, 2018
Updated Oct 1, 2019

jQuery toggleClass: Main Tips

  • The jQuery .toggleClass() alternates between adding and removing the specified classes from the selected elements.
  • Whether you add or remove a class depends on the parameters specified for the .toggleClass() jQuery command.

Learn to Use .toggleClass()

The jQuery .toggleClass() manipulates classes by either adding or removing them from specified HTML elements.

The example below adds a class to a <div> element:

Example
$("button").click(() => {
    $("div").toggleClass("introduction");
});

Tip: to prevent the issue of jQuery .toggleClass() not working, clearly indicate classes to remove or add. Safer options are .addClass() and .removeClass().

This .toggleClass() jQuery syntax specifies classes to be toggled:

$(selector).toggleClass(class);

Alternatively, you can define a function, specifying the method which returns the classes to be toggled:

$(selector).toggleClass(function);

You may also indicate the state:

$(selector).toggleClass(class, state);

The optional state parameter has a boolean value specifying whether classes will be removed (false) or added (true).

Note: while previously you could name the state as the only parameter, this type of syntax has been deprecated in jQuery 3.0.

Learn jQuery
Introduction
Selectors
Events
Event Methods
Download
Callback
Chaining
Get and Set
Add Element
Remove Element
Traverse
Parent
Children
Sibling Traverse
Filtering
jQuery AJAX
Effects
Show and Hide
Fade Effect
Slide Effect
Animate Effect
Manipulate CSS
Width and Height
.addClass()
.after()
.animate()
.append()
.appendTo()
.attr()
.before()
.bind() (deprecated)
.blur()
.change()
.click()
.clone()
.css()
.dblclick()
.delay()
.delegate() and .undelegate() (deprecated)
.detach()
.empty()
.end()
.error() (deprecated)
.fadeIn()
.fadeOut()
.fadeTo()
.fadeToggle()
.finish()
.focus()
.focusIn()
.focusOut()
.hasClass()
.height()
.hide()
.hover()
.html()
.innerHeight()
.innerWidth()
.insertAfter()
.insertBefore()
.keypress()
.keyup()
.live() and .die() (deprecated)
.load() (deprecated)
.mousedown()
.mouseenter()
.mouseleave()
.mousemove()
.mouseout()
.mouseover()
.mouseup()
.off()
.offset()
.offsetParent()
.on()
.one()
.outerHeight()
.outerWidth()
.position()
.prepend()
.prependTo()
.prop()
.proxy()
.queue()
.ready()
.remove()
.removeAttr()
.removeClass()
.removeProp()
.replaceAll()
.replaceWith()
.resize()
.scroll()
.scrollLeft()
.scrollTop()
.show()
.slideDown()
.slideToggle()
.slideUp()
.stop()
.submit()
.text()
.toggle()
.toggleClass()
.trigger()
.triggerHandler()
.unbind() (deprecated)
.unload() (deprecated)
.unwrap()
.val()
.width()
.wrap()
Event Properties
event.currentTarget
event.preventDefault()
event.relatedTarget
event.stopImmediatePropagation()
event.stopPropagation()
event.target
event.timeStamp
event.type
event.which
jQuery .find()
jQuery .keydown()
jQuery.noConflict()
pageY and pageX