Javascript 检测鼠标是否在列边框上

Javascript 检测鼠标是否在列边框上,javascript,jquery,html,css,Javascript,Jquery,Html,Css,有人知道如何通过jQuery或JavaScript检测鼠标是否在列边框或单元格边框上吗? 我想在特定表上实现列大小调整。 非常感谢您的帮助。如果您在悬停的元素的固定位置生成克隆元素,但没有任何填充或边框,则可以检测鼠标是否在该元素的边框上,如果您在克隆上并且在原始元素上,则可以检查mousemove。如果你刚好在原始元素上,那么你显然只是在边界上徘徊。糟糕 也许你可以这样做: 侦听元素上的鼠标悬停事件 检查鼠标位置 如果元素的offset()+outerWidth()与鼠标位置相同,则表示您位于

有人知道如何通过jQuery或JavaScript检测鼠标是否在列边框或单元格边框上吗?

我想在特定表上实现列大小调整。


非常感谢您的帮助。

如果您在悬停的元素的固定位置生成克隆元素,但没有任何填充或边框,则可以检测鼠标是否在该元素的边框上,如果您在克隆上并且在原始元素上,则可以检查mousemove。如果你刚好在原始元素上,那么你显然只是在边界上徘徊。糟糕

也许你可以这样做:

  • 侦听元素上的鼠标悬停事件
  • 检查鼠标位置
  • 如果元素的offset()+outerWidth()与鼠标位置相同,则表示您位于边界上
    您应该检查offsetX和offsetY是否小于边框宽度,如果是,您在边框中,还应检查offsetX是否大于innerWidth或offsetY是否大于innerHeight

    $('td').hover(function(e){
        var border_width = parseInt($(this).css('border-width'));
        if(e.offsetX < border_width || e.offsetX > $(this).innerWidth() || e.offsetY < border_width || e.offsetY > $(this).innerHeight()){
            console.log('This is the border');  
        }
    });
    
    $('td')。悬停(函数(e){
    var border_width=parseInt($(this).css('border-width');
    如果(e.offsetX$(此).innerWidth()| e.offsetY$(此).innerHeight()){
    log(“这是边界”);
    }
    });
    

    我不得不调整Ohgodwhy的答案,以使底部和右侧的边框正常工作,但这样可以查看您是否单击了任何一侧的边框

    $(elmnt).click(function(e){
        var border_width = 10;
        if(e.offsetX < 0 || e.offsetX > ($(elmnt).innerWidth() - (border_width * 2)) || e.offsetY < 0 || e.offsetY > ($(elmnt).innerHeight() - (border_width * 2))){
            alert("you clicked the border");
        }
    });
    
    $(elmnt)。单击(函数(e){
    var border_width=10;
    如果(e.offsetX<0 | | e.offsetX>($(elmnt).innerWidth()-(border|u width*2))| e.offsetY<0 | | e.offsetY>($(elmnt).innerHeight()-(border|width*2))){
    警报(“您单击了边框”);
    }
    });
    
    边框不是元素,它们是它们边框元素的一部分,所以据我所知,您不能只将事件处理程序附加到边框上?@adeneo是的,但如果您可以微笑,那会很有趣,那么解决方案是什么?我是说还有其他选择吗?你不能。您可以做的是为边框创建新元素,例如,就像jQueryUI为可调整大小的元素所做的一样,比如^^您可以使用jQuery UI Resizeable:offset of mouse?如果边框(外径)是10px宽怎么办?如果是内宽呢?即使您的解决方案是可能的,您仍然必须添加元素的bothoffset,它将给出元素的位置。如果将其与鼠标坐标进行比较,应该可以得到位置。即使边框大小为10px,如果正确计算,也可以。要求是知道它是否在边界上。如果你有基本的js知识和像样的jquery,这不应该超过。。。具有挑战性,需要几个小时,如果您将其与更大应用程序的代码相结合,可能会给您带来性能问题