我有一个div网格。
每个div为200x200,并且位于3x3的网格中。 中间div是空的,我试图找出其他潜水的距离,它在x或y方向上是200px,但不是两者。
我的代码如下:
function getValidMoves()
{
var validMoves = new Array(); //CREATE AN ARRAY FOR VALID MOVES
var emptySpace = $('.tileHolder:empty');
var emptyX = emptySpace.offset().left;
var emptyY = emptySpace.offset().top;
var allTileSpace = $('.tileHolder');
for(var i = 0; i < allTileSpace.length;i++)
{
var xDiff = Math.abs(emptyX - $(allTileSpace[i]).offset().left);
var yDiff = Math.abs(emptyY - $(allTileSpace[i]).offset().top);
console.log(xDiff + ',' + yDiff + ' ' + $(allTileSpace[i]).attr("id"));
var pieceID = $(allTileSpace[i]).attr("id");
pieceID = pieceID.substring(4);
validMoves[i] = xDiff + ',' + yDiff + ',' + pieceID;
//console.log(validMoves[i]);
}
所以当这个运行时,我得到的控制台结果没有意义。 基本上,没有div应该超过200,0或0,200被列为有效移动。
以下是来自控制台的结果:
200.00003051757812,200 hold1
0,200 hold2
200,200 hold3
200.00003051757812,0 hold4
0,0 hold5
200,0 hold6
200.00003051757812,200 hold7
0,200 hold8
200,200 hold9
有效移动:hold2
有效移动:hold6
有效移动:hold8
为什么7,4和1返回200.00003051757812? 4也应该是一个有效的举动。