如何确定光标是否在元素范围内

3
我正在创建一个拖放应用程序,我的想法是当用户拖动元素时,获取光标是否悬停在某些其他元素上。
流程如下: 用户开始在页面上拖动元素 当鼠标移动到特定部分时,我想发出ajax调用。
因为我可以通过jquery知道元素及其边界,所以我只希望找到最好的方法来进行检查。
3个回答

3
提到的代码片段来自https://stackoverflow.com/users/650094/adam-terlson,源自使用jQuery查找在视觉上被覆盖在元素下面的元素问题的回答。该代码如下:
function mouseWithin(bounds,x,y) {
    var offset = bounds.offset();
    var l = offset.left;
    var t = offset.top;
    var h = bounds.height();
    var w = bounds.width();

    var maxx = l + w;
    var maxy = t + h;

    return (y <= maxy && y >= t) && (x <= maxx && x >= l);
};

你可以像这样使用它:

var gallery=$("#carousel-gallery");
mouseWithin(gallery,event.pageX,event.pageY);

0

$("#element").hover();

悬停


或者 mouseenter() 和 mouseleave() - Eric Frick
那不起作用,因为由于拖动,我有一个元素附加到鼠标上。 - locrizak

-1

这就是我正在做的,但我想知道是否有更好/更容易的方法来完成它。 - locrizak
通常使用事件是安全的,但由于您带来的物品重叠,答案可能是否定的。:( - Adam Terlson
也许可以从这个答案中借鉴一些代码:https://dev59.com/0W035IYBdhLWcg3wJccw#5599301 这可能会有价值。 - Adam Terlson

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接