[英]remove class from all other list items
我从其他人那里得到了帮助,但是他们的回答有点过分,以至于无法帮助我...关于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);
});
您无需计算已有项目的类,只需将其从所有项目中删除,然后将其重新添加到已单击的项目即可。
编辑:这应该消除闪烁。
如果您指的是人物缩图,则它们对我的效果很好。 尽管某些菜单项不起作用。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.