Javascript 检测鼠标是否在列边框上
有人知道如何通过jQuery或JavaScript检测鼠标是否在列边框或单元格边框上吗?Javascript 检测鼠标是否在列边框上,javascript,jquery,html,css,Javascript,Jquery,Html,Css,有人知道如何通过jQuery或JavaScript检测鼠标是否在列边框或单元格边框上吗? 我想在特定表上实现列大小调整。 非常感谢您的帮助。如果您在悬停的元素的固定位置生成克隆元素,但没有任何填充或边框,则可以检测鼠标是否在该元素的边框上,如果您在克隆上并且在原始元素上,则可以检查mousemove。如果你刚好在原始元素上,那么你显然只是在边界上徘徊。糟糕 也许你可以这样做: 侦听元素上的鼠标悬停事件 检查鼠标位置 如果元素的offset()+outerWidth()与鼠标位置相同,则表示您位于
我想在特定表上实现列大小调整。
非常感谢您的帮助。如果您在悬停的元素的固定位置生成克隆元素,但没有任何填充或边框,则可以检测鼠标是否在该元素的边框上,如果您在克隆上并且在原始元素上,则可以检查mousemove。如果你刚好在原始元素上,那么你显然只是在边界上徘徊。糟糕 也许你可以这样做:
您应该检查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,这不应该超过。。。具有挑战性,需要几个小时,如果您将其与更大应用程序的代码相结合,可能会给您带来性能问题