簡體   English   中英

從所有其他列表項中刪除類別

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM