如何检查鼠标是否位于jQuery中的一个元素之上?

如何检查鼠标是否位于jQuery中的一个元素之上?

在jQuery中,是否有一种我缺少的快速简单的方法来做到这一点?

我不想使用mouseover事件,因为我已经将它用于其他事情。我只需要知道鼠标是否在给定时刻超过了一个元素。

如果有一个“IsMouseOver”函数,我想这样做:

function hideTip(oi) {
    setTimeout(function() { if (!IsMouseOver(oi)) $(oi).fadeOut(); }, 100);}


浮云间
浏览 1428回答 3
3回答

函数式编程

将mouseout上的超时设置为fadeout,并将返回值存储到对象中的数据。然后onmouseover,如果数据中有值,则取消超时。删除fadeout回调中的数据。使用鼠标/鼠标实际上更便宜,因为当儿童鼠标切换/鼠标退出时,它们不会为菜单触发。

狐的传说

这段代码说明了快乐哈利我想说的是。当鼠标进入,一个工具提示出来,当鼠标离开时,它设置了一个延迟,使它消失。如果鼠标在延迟触发之前输入相同的元素,那么我们就在触发之前使用存储的数据销毁触发器。$("someelement").mouseenter(function(){     clearTimeout($(this).data('timeoutId'));     $(this).find(".tooltip").fadeIn("slow");}).mouseleave(function(){     var someElement = $(this),         timeoutId = setTimeout(function(){             someElement.find(".tooltip").fadeOut("slow");         }, 650);     //set the timeoutId, allowing us to clear this trigger if the mouse comes back over     someElement.data('timeoutId', timeoutId); });

qq_花开花谢_0

一个干净而优雅的悬停检查:if ($('#element:hover').length != 0) {     // do something ;)}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JQuery