2013-04-24 52 views
0

我放在一個div懸停動畫像這樣:jQuery的懸停排除圖像

$('#divID').hover(function(){ 
$('#divID').animate({'margin-top': '-200px'}, 200); 
}); 

這一切工作正常, 但是當我把圖像該div裏面,我將鼠標懸停的形象上,而不是div的自由空間的功能不會觸發,因爲圖像是另一個對象。

我希望函數能夠觸發,而不管div的內容如何。

在此先感謝。

+3

你可以產生一個jsFiddle的例子嗎? – Curt 2013-04-24 12:15:05

+0

http://jsfiddle.net/D9mWm/1/ 它對我來說工作正常。 – AnAspiringCanadian 2013-04-24 12:28:18

+0

這是jsFiddle: http://jsfiddle.net/KoenvE/LFrKN/ 它可以工作,但是當你將圖像懸停時,行爲真的很奇怪。 – KoenvE 2013-04-24 12:30:56

回答

1

編輯

釘它:行爲是正確的,因爲你實際上是離開股利。不要將事件適用於兒童和youre good to go

$('#google').not($('#google').children()).mouseleave(function(e){ 
    e.stopPropagation(); 
    $('#google').stop().animate({'margin-top': '0px'}, 200); 
}); 

嗯,基本上這不應該發生。您可以嘗試使用直接mouseenter事件而不是hover,但懸停確實使用mouseenter。 對我來說,似乎還有另一個問題。

嘗試是這樣的:而不是

$('#divID').mouseenter(function(){ 
    $('#divID').stop().animate({'margin-top': '-200px'}, 200); 
}); 
+0

正如你已經寫道;懸停實現了mouseenter和mouseout,所以應該沒有任何區別。 – KoenvE 2013-04-24 12:22:12

-1

只需將鼠標懸停事件,你應該使用mouseout事件爲好。所以現在你的腳本將是:

$('#mostread').hover(function(){ 
$('#mostread').animate({'margin-top': '-200px'}, 200); 

}); 

$('#mostread').mouseout(function(){ 
$('#mostread').animate({'margin-top': '+200px'}, 200); 
}); 
+0

這沒有任何意義。 $()。hover(func1,func2);除了mouseleave以外別無他物。所以要麼使用帶有2個函數的.hover(),要麼使用mouseenter和mouseleave。此外,這不是作者的問題。 – Alex 2013-04-26 12:30:42