单击事件 - 获取 mousedown 开始的目标而不是 mouseup

Dir*_*oer 7 javascript mouse jquery events

在单击事件(附加到文档)中,我想找出用户开始按下鼠标按钮时的目标。

例子:

  • 用户在自定义弹出窗口上按下鼠标按钮
  • 用户将鼠标移出弹出窗口并松开

在这种情况下,下面的代码将target在弹出窗口之外返回一个,但我想弄清楚它是否在弹出窗口内开始

$(document).click(function(e)
{
    // will return the target during *releasing the mouse button*
    // but how to get the target where the *mouse press started*
    console.log(e.target); 
}
Run Code Online (Sandbox Code Playgroud)

当然,我可以通过监听 mousedown 并将其保存在变量中来手动跟踪它 - 但我宁愿有一些native,因为:

  • 更少的代码
  • 我可能会遗漏边缘情况

Jquery 或 vanilla JavaScript 答案对我来说都很好(但偏好 vanilla)

小智 5

您可以将 mousedown 与 mouseup 函数一起使用,并将它们都保存到全局变量中,然后在 if 语句中比较它们。

let downTarget, upTarget;

$(document).mousedown(function(e) {
    downTarget = e.target;
});

$(document).mouseup(function(e) {
    upTarget = e.target;
});

if(upTarget === downTarget){ 
    *do stuff*
};
Run Code Online (Sandbox Code Playgroud)