[英]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.