2013-10-28 102 views
0

我試圖保持1點擊元素的不透明度,而在點擊它之前,它與mouseenter和mouseleave切換。所以我添加了if語句來檢查是否有元素被點擊。雖然條件滿足,但mouseleave函數不會運行。下面是代碼:jQuery的mouseleave()與if語句不工作

$('td').mouseenter(function() { 
    $(this).fadeTo('fast', 0.99); 
}); 
$('td').mouseleave(function() { 
    var $opacity = $(this).opacity; 
    if ($opacity < 1) { 
     $(this).fadeTo('fast', 0.8); 
    } 
}); 
$('td').click(function() { 
    $(this).toggleClass('tdClicked'); 
}); 

的.tdClicked類就是一個簡單的1

不透明類現在,當我將鼠標懸停的元素,他們點亮但不轉回來時,我鼠標離開。

回答

0

opacity不是jQuery對象的屬性。

一個可行的辦法是檢驗TD是否有tdClicked類而不是測試不透明度值

$('td').mouseenter(function() { 
    $(this).fadeTo('fast', 0.99); 
}); 
$('td').mouseleave(function() { 
    if (!$(this).hasClass('tdClicked')) { 
     $(this).fadeTo('fast', 0.8); 
    } 
}); 
$('td').click(function() { 
    $(this).toggleClass('tdClicked'); 
}); 

演示:Fiddle

用自己的方式:Fiddle

+0

謝謝,完美的作品! – Thacklynn