在我的 html 结构中,我有一个 anchor 标记元素,它附加了 hoverIntent 插件事件。
$('a').hoverIntent(function(event){// some code to show popup;})
每当我手动将鼠标悬停在 anchor 标记上时,它都会执行一些 ajax 调用并从服务中取回数据并显示弹出窗口。
我想从代码中触发 mouseenter/hover/mousemove(任何可以弹出的东西)(无需任何手动操作)
我试过基本的 jquery 函数,比如
$('selector').trigger('hover') and
$('selector').trigger('mouseenter')
但没有任何效果,是否可以在不中断用户的情况下调用悬停/鼠标输入功能?
最佳答案
hoverIntent
jQuery 插件使用mouseenter
和mousemove
事件来确定是否触发。如果您只是触发 mouseenter
事件,则不会因此发生任何事情。
您需要先调用 mouseenter
事件并包含鼠标位置。然后你需要调用 mousemove
事件,也包括鼠标位置。
这jsbin显示示例。如果您在没有首先悬停绿色框的情况下悬停“悬停我”项目,则不会发生任何事情。如果将绿色框悬停使其变为红色,“悬停我”链接将在之后起作用。要在不首先悬停绿色框的情况下以编程方式触发此操作,请使用以下调用:
var e = $.Event('mouseenter'); e.pageX = 50; e.pageY = 50; $("#testing").trigger(e); var e2 = $.Event('mousemove'); e2.pageX = 50; e2.pageY = 50; $("#testing").trigger(e2);
关于javascript - 如何通过 jquery 以编程方式调用 mouseenter 事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8423800/