簡體   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