如何在鼠标已经在元素上方的情况下动态添加鼠标悬停事件?

时间:2013-04-07 03:04:15

标签: javascript jquery javascript-events mouseevent mouseover

我动态添加此

$(ele).on("mouseover")

当用户将鼠标悬停在元素上时,但只有当我重新输入元素时才会触发mouseover事件。

Here is example in jsFiddle (点击<div>添加事件监听器)

如何在不手动触发的情况下实现此目的 .mouseover()

提前致谢!

3 个答案:

答案 0 :(得分:3)

我提出的最佳解决方案是(感谢Brandonsuggestion):

在文档中存储x,y pos(稍微降低网页性能):

$(document).mousemove(function (e) {
    // Set global values
    window.mouseXPos = e.pageX;
    window.mouseYPos = e.pageY;
});

然后当动画结束时:

$(document.elementFromPoint(window.mouseXPos, window.mouseYPos)).trigger("mouseenter");

答案 1 :(得分:0)

你做不到。鼠标悬停仅在鼠标穿过元素边界时触发。一旦鼠标在元素内,它就不会触发。您的问题表明您可能需要退后一步并重新检查您的问题。如果您在鼠标已经在元素中时采取行动,那么为什么需要鼠标悬停事件?

答案 2 :(得分:0)

在以这种方式附加事件处理程序之后,您可以使用触发器jQuery函数手动触发鼠标悬停

$(".test").on("click",function(){
    $(this).on("mouseover",function(){
       alert("");   
    });
    $(this).trigger('mouseover');
})