如何获得点击tr的绝对位置?

How to get absolute position of clicked tr?

我正在使用 Material 中的菜单。当用户在 tr 上 right-clicking 时,我想制作一个下拉菜单,但菜单在 table header 位置弹出。 (X坐标正常,但Y坐标卡在tableheader的位置)

$(document).on('contextmenu','#table2 tr',function(e){
   e.preventDefault();
   let parentOffset = $(this).offset();
   menu.open = false;
   console.log($(this).attr('id'));
   menu.setAbsolutePosition(e.pageX - parentOffset.left, e.pageY - parentOffset.top);
   menu.open = true;
});

如何固定坐标?

$(document).on('contextmenu','#table2 tr',function(e){
   e.preventDefault();
   menu.open = false;
   console.log($(this).attr('id'));
   menu.setAbsolutePosition(e.clientX, e.clientY);
   menu.open = true;
});

问题已解决,因为 setAbsolutePosition 从 parent 的位置设置位置(我不知道)。我只是将菜单元素放在 body 标签之后并使用 menu.setAbsolutePosition(e.clientX, e.clientY);,现在一切正常