I’m developing a menu that has two modes, when the user clicks on one of them the class of a list item changes, I can get it to work at the first mode change but when I try to change back it does not work.
this is my code
$('#menu ul.mode li.edit').click(function() {
$('#menu').css('background-image', 'url(images/edit-menu/fundo.png)');
});
$('#menu ul.icons li.ummix').removeClass('ummix').addClass('um');
$('#menu ul.mode li.mix').click(function() {
$('#menu').css('background-image', 'url(images/edit-menu/fundo-mix.gif)');
$('li.um').removeClass('um').addClass('ummix');
});
the part that doesn’t work is
$('#menu ul.icons li.ummix').removeClass('ummix').addClass('um');
My HTML is like this
<div id="menu">
<ul class="mode">
<li class="edit"><a href="#edit"><img src="images/edit-menu/selected/edit.gif" /></a></li>
<li class="mix"><a href="#mix"><img src="images/edit-menu/icons/mix.png" /></a></li>
</ul>
<ul class="icons">
<li class="um"></li>
</ul>
Adding and removing opposite classes becomes unwieldy.
Assuming that
unmixandumare opposites of one another, I would encourage you to use just one class. Then check for its existence or nonexistence. At that point you could simply use something liketoggleClass().