【发布时间】:2011-04-27 04:50:03
【问题描述】:
如果您的元素具有移动动画,则除非用户移动鼠标,否则不会触发 mouseover 和 mouseenter 事件。为了演示使用 jQuery 尝试下面的代码块。
如果您将鼠标放在移动的 div 前面,这样当 div 经过时您不会移动鼠标,则不会触发 mouseover 并且块不会停止。
在 Firefox 中,mouseover 事件会在不手动将鼠标移动到 div 上的情况下触发,但前提是您至少移动了一次鼠标。
我的问题是有一个解决方法,所以在鼠标光标下移动的元素仍然会触发其mouseover 事件?
<script>
$(function() {
var move = 10,
left = 0,
width = 100;
var stop = setInterval(function() {
left += move;
$('#mydiv').css('left', left);
if (left < 0 || (left + width > parseInt($(window).width())))
move = -1 * move;
}, 10);
$('#mydiv').mouseover(function() { clearInterval(stop); });
});
</script>
<div id="mydiv" style="width: 100px; height: 100px; position: absolute; top: 0; left: 0; background-color: Black;"> </div>
我知道这个例子是人为的,但这只是为了说明问题。
【问题讨论】:
标签: jquery animation mouseover jquery-events mouseenter