jQuery:如何检查鼠标是否位于元素上方

标签 jquery

我有一个绑定(bind) mouseenter 事件的延迟函数:

$(window).load(function(e) {
  var $container = $('.container');
  $container.mouseenter(function(e) {
    //do something
  });
  ...
});

问题是当 load 事件触发时,鼠标可能已经位于元素上方,因此在 mouseenter 事件绑定(bind)之前。
我可以通过在页面加载处理程序末尾放置一些代码来一次性检查鼠标是否在元素内部并手动触发 mouseenter 事件来解决此问题:

// check if the mouse is inside $container
if(mouse is inside $container)
  $container.mouseenter();

如何在加载事件中检查鼠标是否位于元素上?

我尝试了 $container.is(':hover') 但它不起作用。

最佳答案

我还没有测试它,但认为你想要这样......

function checkMouseCollision(obj) {
    var offset = obj.offset();
    objX= offset.left;
    objY=offset.top;
    objW=obj.width();
    objH=obj.height();

    var mouseX = 0;
    var mouseY = 0;
    $().mousemove( function(e) {
    mouseX = e.pageX;
    mouseY = e.pageY;
    });

    if((mouseX>objX&&mouseX<objX+objW)&&(mouseY>objY&&mouseY<objY+objH)){
        alert("hovered")     
    };
};
checkCollision($(".box"))

关于jQuery:如何检查鼠标是否位于元素上方,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8597663/

相关文章:

javascript - JQuery 扩展字符串

javascript - 如何使用 jQuery 解决 OSX 死键问题?

jquery - FancyBox,获取点击项目的ATTR

javascript - jQuery 图像调整大小 - 通过变量并直接给出不同的结果

jQuery .each() this 和 element

javascript - 重新加载内容后如何使 JQuery 工作?

javascript - jQuery 根据当前颜色更改 div 的背景颜色

javascript - Jquery 在单击时向字段添加自动对焦

javascript - 使您的 JavaScript 可维护

javascript - 当用户关闭浏览器选项卡时如何显示弹出窗口?