我已经得到了其他人的帮助,但是他们的回复有点过于宽泛而无法帮助我……当谈到
javascript时我是个新手,所以我无法完全理解他们的答案(以及一切我在过去3天尝试过没有用过.)工作网站在这里:
http://www.studioimbrue.com/beta问题是,使用缩略图,一旦点击它就会正确添加.selected类,但是当点击另一个时,它无法剥离来自任何其他缩略图的.selected类.如果你能纠正我所拥有的令人惊奇的代码,如果你想解释我的错误,那么就去吧!
$(document).ready(function(){
var activeOpacity = 1.0,
inactiveOpacity = 0.6,
fadeTime = 100,
clickedClass = "selected",
thumbs = "#list li";
$(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);
});
});
最佳答案 我认为这很简单:
$(thumbs).click(function() {
var li = $(this);
var alreadySelected = li.hasClass('selected');
// Remove selected class from any elements other than this
$('#list li').removeClass(clickedClass).fadeTo(fadeTime, inactiveOpacity);
li.addClass(clickedClass).fadeTo(((alreadySelected) ? 0 : fadeTime), activeOpacity);
});
您不需要计算已经拥有该类的项目,只需将其从所有项目中删除,然后将其重新添加到已单击的项目中.
编辑:这应该删除闪烁.