我在div上放置了一个悬停动画:
$('#divID').hover(function(){
$('#divID').animate({'margin-top': '-200px'}, 200);
});
一切正常, 但是当我在div中放置一个图像时,我将鼠标悬停在该图像而不是div的自由空间上,该函数不会触发,因为图像是另一个对象。
无论div的内容如何,我都希望触发该函数。
提前致谢。
答案 0 :(得分:1)
修改强>
Nailed it:行为是正确的,因为你实际上离开了div。不要将事件应用于孩子和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);
});
答案 1 :(得分:-1)
而不仅仅是悬停事件,您也应该使用mouseout事件。所以现在你的脚本将是:
$('#mostread').hover(function(){
$('#mostread').animate({'margin-top': '-200px'}, 200);
});
$('#mostread').mouseout(function(){
$('#mostread').animate({'margin-top': '+200px'}, 200);
});