是jquery中元素上方的点

是jquery中元素上方的点,jquery,html,mouseover,mouseout,Jquery,Html,Mouseover,Mouseout,我在div上有一个textarea。在div中,我突出显示输入textarea的文本的某些部分。我试图将鼠标移到突出显示的事件上,但显然我做不到,因为它们在我的文本区域下。我在想,这是否可能使用textarea上的mousemove事件来跟踪鼠标坐标,但后来我认为这对我没有好处,因为如果高亮显示跨越,我无法确定确切的边界 所以问题是,我如何模拟mouseover和mouseout事件,因为它们位于其他元素下,所以没有接收到这些事件 编辑: 根据马库斯的回答,我完成了一个解决方案。mouseov

我在div上有一个textarea。在div中,我突出显示输入textarea的文本的某些部分。我试图将鼠标移到突出显示的事件上,但显然我做不到,因为它们在我的文本区域下。我在想,这是否可能使用textarea上的mousemove事件来跟踪鼠标坐标,但后来我认为这对我没有好处,因为如果高亮显示跨越,我无法确定确切的边界

所以问题是,我如何模拟mouseover和mouseout事件,因为它们位于其他元素下,所以没有接收到这些事件

编辑:

根据马库斯的回答,我完成了一个解决方案。mouseover/mouseout事件的完整代码:

var mouseDown = false;
var mouseIsOver = false;
var lastOverElem = false;
textarea.mousemove(function(e) {
    if (!mouseDown) {
        textarea.hide();
        var elm = $(document.elementFromPoint(e.pageX, e.pageY));
        textarea.show();
        if (elm.hasClass("highlighted")) {
            /* MOUSE MOVE EVENT */
            if (!mouseIsOver) {
                mouseIsOver = true;
                /* MOUSE OVER EVENT */
            }
        } else {
            if (mouseIsOver) {
                mouseIsOver = false;
                if (lastOverElem) {
                    /* MOUSE OUT EVENT */
                }
            }
        }
    }
});

$('body').mousedown (function () {mouseDown = true;});
$('body').mouseup (function () {mouseDown = false;});
你可以用。显然,如果
textarea
位于底层突出显示容器的前面,这是不起作用的,但是有一个应用程序可以实现这一点。在调用
document.element frompoint
之前,您只需暂时隐藏
文本区域
,然后直接显示它

var textarea = $("#linksTextarea");
textarea.on("mousemove", function(e) {
    // Temporarily hide the textarea
    textarea.hide();
    // Get element under the cursor
    var elm = $(document.elementFromPoint(e.pageX, e.pageY));
    // Show the textarea again
    textarea.show();
    if (elm.hasClass("highlighted")) {
        console.log("You're mouse is over highlighted text");
    }
});
由于DOM是实时更新的,而它的呈现被延迟到所有JavaScript都被执行之后,因此您不必担心任何视觉故障


看。

有很多想法可以帮助你。非常有趣。但是,我需要在另一个元素上方的textarea,以便用户可以键入文本、选择文本、上下文菜单等。指针事件:无;禁用所有这些功能。另外+1用于向我展示我不知道存在的技术,该页面上的回答建议暂时隐藏文本区域,然后使用document.elementFromPoint方法将事件传递给覆盖的元素。不过,不确定这会有多好。@ScottMutch实际上在实现我的测试用例之前没有阅读您的评论,但这正是它的工作方式:)我修改了您的小提琴以添加mousemove事件。但我想听听你的意见。所以你怎么认为?是不是太俗气了?或者它会在一个大型项目中站稳脚跟?@19greg96为什么它会太草率?没有比这更好的方法了;)不过,我可能会将
mousedown
mouseup
组合起来,使用
document
而不是
body
,因为它的选择速度稍微快一点。