Javascript 在mouseup()事件中使用mousedown()中的变量

Javascript 在mouseup()事件中使用mousedown()中的变量,javascript,jquery,Javascript,Jquery,所以,对于那些研究过的人来说,我正在用完整的JS和jQuery(或者至少大部分是这样)构建一个棋盘 因此,为了有效地限制我的棋子移动的方块数量,我需要知道它们的位置。(起始和结束位置) 我编写了下面的代码来记录起始行(整数)和起始列(整数),并在mousedown()和mouseup() 因为就我所见,我无法比较这两个值,因为两个日志处于不同的事件中。(请记住,我对两种语言都是新手,而且还在学习) 我的问题是,是否可以收集这两个值(起始值和结束值),然后将它们相互比较。最简单的方法是创建sele

所以,对于那些研究过的人来说,我正在用完整的JS和jQuery(或者至少大部分是这样)构建一个棋盘

因此,为了有效地限制我的棋子移动的方块数量,我需要知道它们的位置。(起始和结束位置)

我编写了下面的代码来记录起始行(整数)和起始列(整数),并在
mousedown()
mouseup()

因为就我所见,我无法比较这两个值,因为两个日志处于不同的事件中。(请记住,我对两种语言都是新手,而且还在学习)


我的问题是,是否可以收集这两个值(起始值和结束值),然后将它们相互比较。

最简单的方法是创建selectedRow\u down和selectedColumn\u down 在全局范围内选择向上移动和向上移动列

var selectedRow_down;
var selectedColumn_down;
var selectedRow_up;
var selectedColumn_up;

$('div').mousedown(function(e) {
    e.preventDefault();
    var selectedRow_down = this.getAttribute("data-row");
    var selectedColumn_down = this.getAttribute("data-column");
    piece = $(this).find('.pawn');
})
.mouseup(function() {
    var selectedRow_up = this.getAttribute("data-row");
    var selectedColumn_up = this.getAttribute("data-column");
    console.log(selectedRow_up, selectedColumn_up);
    $(this).append(piece);
});
然后在执行鼠标事件时引用其值

此外,您还可以先创建全局二维数组,以便跟踪您的棋子,请参阅此线程如何创建二维数组

所以你说你使用jQuery(我可以看到),但是你为什么不把它用于更多的事情呢。例如,
this.getAttribute(“数据行”)
可以是
$(this.data(“行”)。是的,您可以对它们进行比较,您需要将变量移出事件的范围,或者将它们放回
数据
属性中。@putvande知道这一点很简单,谢谢!就像我说的,我仍在学习这两种语言。@putvande为什么控制台中返回的整数现在是不同颜色的?带有$(this.data('row')的一个为绿色,而其他的为黄色。这有什么原因吗?可能是一个被转换为实际整数和另一个被转换为字符串(
1
'1'
)之间的差异,但我不确定。否决这个问题的人能否详细说明他们为什么否决?也许我可以改进我的问题?
var selectedRow_down;
var selectedColumn_down;
var selectedRow_up;
var selectedColumn_up;

$('div').mousedown(function(e) {
    e.preventDefault();
    var selectedRow_down = this.getAttribute("data-row");
    var selectedColumn_down = this.getAttribute("data-column");
    piece = $(this).find('.pawn');
})
.mouseup(function() {
    var selectedRow_up = this.getAttribute("data-row");
    var selectedColumn_up = this.getAttribute("data-column");
    console.log(selectedRow_up, selectedColumn_up);
    $(this).append(piece);
});