繁体   English   中英

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

[英]Use a var from mousedown() in the mouseup() event

因此,对于那些看过我上一个问题的人 ,我可以使用完整的JS和jQuery(或至少是大多数)来构建棋盘。

因此,要让我的作品有效地受到正方形移动量的限制,我需要知道它们的位置。 (开始和结束位置)

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

var piece;
        $('div').mousedown(function(e) {
            e.preventDefault();
            var selectedRow = this.getAttribute("data-row");
            var selectedColumn = this.getAttribute("data-column");
            console.log(selectedRow, selectedColumn);
            piece = $(this).find('.pawn');
        })
        .mouseup(function() {
            var selectedRow = this.getAttribute("data-row");
            var selectedColumn = this.getAttribute("data-column");
            console.log(selectedRow, selectedColumn);
            if (selectedRow === selectedRow++ || selectedColumn === selectedColumn++){
                console.log('TRUE :D'); //Wont be true because both selectedRow's will be the same value
            }
            $(this).append(piece);
        });

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

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

最简单的方法是在全局范围内创建selectedRow_down和selectedColumn_down selectedRow_up和selectedColumn_up。

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);
});

然后在执行鼠标事件时引用其值

也可以先制作全局二维数组,以便跟踪棋子,请参见此线程如何创建2d数组。 如何在JavaScript中创建二维数组?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM