在单击事件(附加到文档)中,我想确定用户开始按下鼠标按钮时的目标。
例子:
- 用户在自定义弹出窗口上按下鼠标按钮
- 用户将鼠标移到弹出窗口外并松开
在那种情况下,下面的代码将在弹出窗口外返回一个目标
,但我想弄清楚它是否在弹出窗口内开始。
$(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);
}
当然,我可以通过监听 mousedown 并将其保存在一个变量中来手动跟踪它 - 但我宁愿使用一些native,因为:
- 更少的代码
- 我可能会遗漏边缘情况
Jquery 或 vanilla JavaScript 答案对我来说都很好(但更喜欢 vanilla)
最佳答案
您可以将 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*
};
关于javascript - 单击事件 - 获取 mousedown 开始而不是 mouseup 的目标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56009448/