Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/434.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在mouseup事件中使用mousedown位置_Javascript_Jquery - Fatal编程技术网

Javascript 在mouseup事件中使用mousedown位置

Javascript 在mouseup事件中使用mousedown位置,javascript,jquery,Javascript,Jquery,嘿,伙计们,我正在尝试一个简单的自定义拖放元素系统。我想用mousedown和mouseup事件来解决这个问题 我的问题是,我不知道如何在mouseup事件中获得mousedown位置 div.mousedown(function (e) { var cursorDown = e.pageX; }).mouseup(function (e) { alert(cursorDown) }) 我尝试从此处修改解决方案,以仅获取第一个和最后一个值,但失败: 我很感激ypu能给我的每一个提示 提

嘿,伙计们,我正在尝试一个简单的自定义拖放元素系统。我想用mousedown和mouseup事件来解决这个问题

我的问题是,我不知道如何在mouseup事件中获得mousedown位置

div.mousedown(function (e) {
  var cursorDown = e.pageX;
}).mouseup(function (e) {
  alert(cursorDown)
})
我尝试从此处修改解决方案,以仅获取第一个和最后一个值,但失败:

我很感激ypu能给我的每一个提示


提前感谢

您需要将其存储在事件处理程序之外

或者在变量中(如果变量只有一个,或者它被包装在插件中),或者,为了保持它的自包含性,针对项目:

div.mousedown(function (e) {
  $(this).data("cursorDown", e.pageX)
}).mouseup(function (e) {
  var cursorDown = $(this).data("cursorDown")
  alert(cursorDown)
})

要修改其他解决方案,请执行以下操作:

var allPoints = [];
div.mousedown(function (e) {
  $(this).on("mousemove", trackPoints); 
}).mouseup(function (e) {
  $(this).off("mousemove", trackPoints);

  var cursorDown = allPoints[0];
  allPoints = [];  // clear drag details
});

function trackPoints(e) {
  allPoints.push({ x: e.pageX, y: e.pageY });
}
或者,使用变量

var cursorDown = {};
div.mousedown(function (e) {
  cursorDown = { x: e.pageX, y: e.pageY };
}).mouseup(function (e) {
  alert(cursorDown)
});

您可以将data-*属性与

$(“#框”)。在({
mousedown(evt){
$(this.data('xyDn',{x:evt.pageX,y:evt.pageY});
},
鼠标(evt){
常量xyDn=$(this.data('xyDn');
const xyUp={x:evt.pageX,y:evt.pageY};
console.log(`
DN=x:${xyDn.x}y:${xyDn.y}
UP=x:${xyUp.x}y:${xyUp.y}
`);
},
});
html,正文{
身高:100%;
保证金:0;
}
#盒子{
宽度:100vw;
高度:100vh;
}