The easiest way to see the problem is checking the code here: http://www.studioimbrue.com/beta
What I need to do is once a thumbnail is clicked, to removed the “selected” class from all other thumbnails that are in this same or without removing them from the other galleries on the page. Right now, I have everything working except the class removal. Someone helped me in another question but wasn’t quite specific enough (my javascript skills aren’t all that great!) I’m using jQuery. Thanks for the help.
Well in that case, I’m not sure why this doesn’t work properly:
$(document).ready(function(){
var activeOpacity = 1.0,
inactiveOpacity = 0.6,
fadeTime = 100,
clickedClass = "selected",
thumbs = ".thumbscontainer ul li img";
$(thumbs).fadeTo(1, inactiveOpacity);
$(thumbs).hover(
function(){
$(this).fadeTo(fadeTime, activeOpacity);
},
function(){
// Only fade out if the user hasn't clicked the thumb
if(!$(this).hasClass(clickedClass)) {
$(this).fadeTo(fadeTime, inactiveOpacity);
}
});
$(thumbs).click(function() {
// Remove selected class from any elements other than this
var previous = $(thumbs+'.'+clickedClass).eq();
var clicked = $(this);
if(clicked !== previous) {
previous.removeClass(clickedClass);
}
clicked.addClass(clickedClass).fadeTo(fadeTime, activeOpacity);
});
});
I see you’re using jQuery (and have edited your question accordingly).
With jQuery, it’s really easy to get a list of matching elements using CSS syntax:
That gets a list of the direct children of the element with the ID “parentId” that have the class “selected”. You can then do things with them, such as:
Then add “selected” to the element you want to select.
Edit I think this should do it:
I’m assuming there that the “selected” class isn’t necessary for the fade effect to look right.
Note how the above will completely ignore the click if the clicked element already has the class. If you don’t want that, remove the
hasClasscheck and add.not(clicked)to the end of theprevious = $(thumbs+'.'+clickedClass)line, but I don’t know what your fade in would do at that point if you’ve already done it once.I’m not getting the hover stuff; I thought you wanted this to happen on click, not hover.