为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

浮云间 2019-06-28 16:11:47
如何检查鼠标是否位于jQuery中的一个元素之上?在jQuery中,是否有一种我缺少的快速简单的方法来做到这一点?我不想使用mouseover事件,因为我已经将它用于其他事情。我只需要知道鼠标是否在给定时刻超过了一个元素。如果有一个“IsMouseOver”函数,我想这样做:function hideTip(oi) {     setTimeout(function() { if (!IsMouseOver(oi)) $(oi).fadeOut(); }, 100);}
查看完整描述

3 回答

?
函数式编程

TA贡献1807条经验 获得超9个赞

将mouseout上的超时设置为fadeout,并将返回值存储到对象中的数据。然后onmouseover,如果数据中有值,则取消超时。

删除fadeout回调中的数据。

使用鼠标/鼠标实际上更便宜,因为当儿童鼠标切换/鼠标退出时,它们不会为菜单触发。


查看完整回答
反对 回复 2019-06-28
?
狐的传说

TA贡献1804条经验 获得超3个赞

这段代码说明了快乐哈利我想说的是。当鼠标进入,一个工具提示出来,当鼠标离开时,它设置了一个延迟,使它消失。如果鼠标在延迟触发之前输入相同的元素,那么我们就在触发之前使用存储的数据销毁触发器。

$("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); });


查看完整回答
反对 回复 2019-06-28
?
qq_花开花谢_0

TA贡献1835条经验 获得超7个赞

一个干净而优雅的悬停检查:

if ($('#element:hover').length != 0) {
    // do something ;)}


查看完整回答
反对 回复 2019-06-28
  • 3 回答
  • 0 关注
  • 1427 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信