Javascript 你能得到ClientX&&;引用选择器而不是窗口的ClientY?

Javascript 你能得到ClientX&&;引用选择器而不是窗口的ClientY?,javascript,jquery,Javascript,Jquery,当我调用一个函数时,我从全局函数中得到:window.event.clientX和window.event.clientY,粘贴 我试图粘贴在坐标上,但它们被我正在努力解决的一些信息关闭了 我只是想: window_data: {top,left} 和减记: stage_div_offset: {top,left} 以获得实际偏移量,但这似乎也偏离了一点。在X和Y方向上大约有40个像素。我想这可能是因为空白或填充物之类的原因 我真正好奇的是,有没有一种方法可以获得鼠标相对于div或其他h

当我调用一个函数时,我从全局函数中得到:window.event.clientX和window.event.clientY,粘贴

我试图粘贴在坐标上,但它们被我正在努力解决的一些信息关闭了

我只是想:

window_data:  {top,left}
和减记:

stage_div_offset:  {top,left}
以获得实际偏移量,但这似乎也偏离了一点。在X和Y方向上大约有40个像素。我想这可能是因为空白或填充物之类的原因

我真正好奇的是,有没有一种方法可以获得鼠标相对于div或其他
htmlElement
X
Y

我不确定是否有一个函数可以在选择器中传递,或者如果使用类似jquery的东西,实际上会有一个函数或选择器的东西,名为:mouse

我确实觉得下面这个话题很相关,但不确定它是否会让我成为dup:

编辑:最初,我正在执行以下代码:

var stage = $("#stage").offset(),
    results = { 
        left: window.event.clientX - stage.left, 
        top: window.event.clientY - stage.top 
    };
编辑2:当前的答案似乎都不起作用,部分原因是我的浏览器无法识别mouseEvent,因此无法获取屏幕位置

我写了下面这篇文章是为了得到鼠标定位

var MouseLocation = {};
MouseLocation.Left = 0;
MouseLocation.Top = 0;
MouseLocation._event;
MouseLocation.get_position = function () { return { left: MouseLocation.Left, top: MouseLocation.Top }; }
MouseLocation.attach = function () {
    MouseLocation._event = function (e) {
        var loc = { left: e.clientX, top: e.clientY }
        MouseLocation.Left = loc.left;
        MouseLocation.Top = loc.top;
    };
    $("#stage").on("mousemove", MouseLocation._event);
}
MouseLocation.detach = function () {
    $("#stage").off("mousemove", MouseLocation._event);
}
MouseLocation.ping = function () {
    MouseLocation.attach();
    $("#stage").mousemove();
    MouseLocation.detach();
}
这样,在我的活动中,我可以说:

MouseLocation.ping(); 鼠标定位。获取位置()

但它似乎不喜欢:$(“#stage”)。在(“mousemove”)上,您可以使用它:


获取匹配元素集中第一个元素相对于偏移父元素的当前坐标。

您只需获取鼠标的文档坐标并减去元素的坐标:

relX = e.clientX-element.offset().left;
relY = e.clientY-element.offset().top;


offset()的优点是计算中包含了边距和填充。

我添加了一些代码。现在,我只是从event.client*中提取stage.offset()的值。你是说我应该做event.client*-{stage.parent().offset()+stage.position()}现在我遇到的一个问题是,当我粘贴时,它无法识别什么是:window.event.clientX等等。我错过什么了吗?现在,我点击并复制,但我只是想得到鼠标位置的坐标。好像当我粘贴的时候,它找不到我的鼠标什么的。我想这是因为事件被用于单击内容,所以很多与鼠标相关的内容是0或未定义的。@上面RodringoDela没有对填充、边距、边框等进行补偿。我想偏差可能与此有关,但我找不到更多,因为我有边距和填充等,那个么使用这个位置不是更有意义吗?哦,对不起。我错了,这是补偿()的优点。