Javascript 在mouseup事件中使用mousedown位置
嘿,伙计们,我正在尝试一个简单的自定义拖放元素系统。我想用mousedown和mouseup事件来解决这个问题 我的问题是,我不知道如何在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能给我的每一个提示 提
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;
}