2016-01-21 37 views
-1

因此,對於那些查看my previous question的人,我在完整的JS和jQuery(或者至少大部分)中構建一個棋盤。在mouseup()事件中使用mousedown()中的var

因此,我的作品要有效地限制他們被允許移動的廣場數量,我需要知道他們的位置。 (開始和結束位置)

我寫了下面的代碼記錄的起始行(整數)和起始列(整數),這樣做對雙方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); 
     }); 

爲了儘可能我可以看到我不能比較這兩個值,因爲兩個日誌都在不同的事件。 (請記住,這兩種語言和即時通訊仍然在學習)。

我的問題是如果它有可能收集兩個值(開始和結束),然後能夠比較他們彼此。

+1

所以你說你使用jQuery(我可以看到這一點),但爲什麼不用它來做更多的事情。例如'this.getAttribute(「data-row」)'可以是'$(this).data('row');'。是的,你可以比較它們,你需要將變量移出事件範圍或將它們放回到'data'屬性中。 – putvande

+0

@putvande這是一個整潔的事情要知道,謝謝!就像我說過的,我仍然在學習兩種語言。 –

+0

@putvande現在,控制檯中返回的整數是不同顏色的原因嗎? $(this).data('row')的那個是綠色的,而其他的是黃色的。這是有原因的嗎? http://prntscr.com/9suizc –

回答

2

最簡單的方法是在全局範圍內創建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); 
}); 

則是指它的價值,你做你的鼠標事件

,你也可以讓全球二維數組先這樣可以讓你的棋子的軌跡,看到這個線程如何創建二維數組 How can I create a two dimensional array in JavaScript?

相關問題