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

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

我想在特定的表上实现一个调整列的列。

任何帮助表示赞赏。

你应该检查offsetX和offsetY是否小于border-width,如果是,你在边框中,还要检查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'); } }); 

这是一个jsFiddle

可能你可以这样做:

  1. 在元素上侦听鼠标hover事件
  2. 检查鼠标位置。
  3. 如果元素的offset()+ outerWidth()与鼠标位置相同,则表示您在边框上。

您可以检测鼠标是否已经超过该元素的边界如果您在正在hover的确切元素的固定位置生成克隆元素但没有任何填充或边框,那么如果您在克隆上,则检查mousemove并且如果你已经超过了原来的元素。 如果你刚刚超过原来的元素,那么你显然只是在边境上空盘旋。 BOOYAH!

我不得不调整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"); } });