2009-10-26 82 views
4

我試圖讓圖片在點擊時保持不透明,並且在懸停時顯示淡入/淡出功能。點擊後,它將刪除一個類並向該元素添加一個「選定」類。問題在於,儘管原始類已被刪除,但仍然會執行回調,就好像該類仍在元素中一樣。因此,如果點擊它,它會將不透明度更改爲1,並刪除.gallery_item類,但仍會淡出懸停時的元素。我知道代碼可以改進,但它僅用於演示目的。jQuery懸停回調函數問題

懸停代碼:

$(".gallery_item img").hover(
    function() { 
     $(this).fadeTo('50', 1); 
    }, 
    function() { 
     $(this).fadeTo('50', 0.6); 
    } 
); 

代碼點擊/使元素透明度1:

$(".gallery_item img").click(function() { 
    $('.gallery_item').removeClass('gallery_item_selected'); 
    $(this).parent().addClass('gallery_item_selected').removeClass('gallery_item'); 
    $(this).css("opacity", "1"); 
}); 

我在做什麼錯了/是什麼更好的方式來做到這一點?

回答

8

嘗試檢查,如果圖像具有所選擇的類別的函數mouseout內應用淡入淡出效果之前:

$(".gallery_item img").hover(
    function() { 
     $(this).fadeTo('50', 1); 
    }, 
    function() { 
     if(!$(this).parent().hasClass('gallery_item_selected')) { 
      $(this).fadeTo('50', 0.6); 
     } 
    } 
); 
+0

謝謝,但所需要的類被添加到div,而不是圖像。所以我將parent()添加到它。 :) – 2009-10-26 12:19:19

+0

@Constant M - 我錯過了 - 我在你張貼之前編輯了它,哦,無論如何你都明白了。 – karim79 2009-10-26 12:24:04