2013-05-01 158 views
0

我有兩個事件:奇怪的動畫行爲

$('li').on({ 
    'mouseover':fadeImgOut, 
    'mouseout' :fadeImgIn 
}); 

和功能...

function fadeImgOut() { 
    $(this).find('img').animate({opacity:'.5'}, 1000); 
} 
function fadeImgIn() { 
    $(this).find('img').animate({opacity:'1'}, 1000); 
} 

當我將鼠標懸停在其上時,圖像fadeout, fadein and fadeout,當我移動鼠標移出,圖像fadein, fadeout and fadein再次。

我無法解釋這種行爲:爲什麼圖像不會在mouseover上消失,並在mouseout上消失?

+1

將其更改爲鼠標離開/的mouseenter和使用的stop() – epascarello 2013-05-01 02:42:30

回答

2

使用

$('li').on({ 
    'mouseenter':fadeImgOut, 
    'mouseleave' :fadeImgIn 
}); 

或者更好

$('li').hover(fadeImgOut, fadeImgIn) 
+0

工作!爲什麼mouseenter/mouseleave在工作,mouseover/mouseout不是? – 2013-05-01 02:45:11

+0

將鼠標指針移動到子元素時,'li> mouseout'會被觸發,但只有當您將元素移動到外部元素時纔會觸發'mouseleave'。 – 2013-05-01 02:48:21

+0

有意義。謝謝! – 2013-05-01 02:49:02