2012-12-02 39 views
1

我正在創建棋子變體遊戲。 我是jquery的新手,但通過一些幫助,現在棋子可以在棋盤上移動。移動棋子的位置

有沒有辦法指出移動的開始位置和結束位置?

我還想在移動完成後禁用所有塊運動。

當前代碼:

$('img').draggable(); 
$('#tbl td').droppable({ 
hoverClass: 'over', 
drop: function(event, ui) { 
    var cell = ui.draggable.appendTo($(this)).css({ 
     'left': '0', 
     'top': '0' 
    }); 
    var row = cell.closest('tr').prevAll().length + 1; 
    var col = cell.closest('td').prevAll().length + 1; 
    $('#coords').html('Row ' + row + ', Col ' + col); 
    } 
}); 

的jsfiddle http://jsfiddle.net/blueberrymuffin/bLb3H/

感謝。

+0

最好的問題... –

回答

0
$('img').draggable({ 
    start: function(e, ui) { 
     alert('Starting move from position (' + ui.position.top + ', ' + ui.position.left + ')'); 
    }, 
    stop: function(e, ui) { 
     alert('Ending move at position (' + ui.position.top + ', ' + ui.position.left + ')'); 
    } 
}); 
$('#tbl td').droppable({ 
    hoverClass: 'over', 
    drop: function(event, ui) { 
     var cell = ui.draggable.appendTo($(this)).css({ 
      'left': '0', 
      'top': '0' 
     }); 
     var row = cell.closest('tr').prevAll().length + 1; 
     var col = cell.closest('td').prevAll().length + 1; 
     $('#coords').html('Row ' + row + ', Col ' + col); 
     $('img').draggable('disable'); 
    } 
});​ 
+1

http://jsfiddle.net/devlshone/bLb3H/2/ – DevlshOne

+0

非常感謝您的幫助。當我運行它時,雖然位置總是說0,0。有沒有辦法獲得開始移動的行,列的位置? – user1763812

+0

在'draggable'元素上,嘗試使用'drag'事件而不是'start'或'stop'。 – DevlshOne

0

我想我想通了。 下面是代碼:

$('img').draggable({ 
start: function(e, ui) {   
var myCol = $(this).closest("td").index() + 1; 
var myRow = $(this).closest("tr").index() + 1; 
$('#coords').html('Row ' + myRow + ', Col ' + myCol);    
}, 
}); 
$('#tbl td').droppable({ 
hoverClass: 'over', 
drop: function(event, ui) { 
    var cell = ui.draggable.appendTo($(this)).css({ 
     'left': '0', 
     'top': '0' 
    }); 
    var row = cell.closest('tr').prevAll().length + 1; 
    var col = cell.closest('td').prevAll().length + 1; 
    $('#coords').html('Row ' + row + ', Col ' + col); 
    $('img').draggable('disable'); 
} 
}); 

和的jsfiddle:http://jsfiddle.net/bLb3H/5/

我不知道,雖然如何與被拖到它的新的替換當前圖像(目前兩個圖像佔用相同的細胞)。有任何想法嗎?

謝謝。

+0

對不起,我不確定你的意思是「當前圖片」和「拖到它上面」。你能詳細說明一下嗎? – DevlshOne

+0

你是說當兩件作品落在同一個空間時? – DevlshOne

+0

感謝您的回覆,我會再試一次:我不想讓兩件作品佔據相同的空間。最新的作品將在同一個空間中取代當前作品。 – user1763812