让我解释一下游戏的玩法。有 三 可拨打电话空白1,空白2,空白3 和 六 可拖动电话< b> ans1 到 ans6 位于视图顶部。
拖动 no.3 图像时,每个空白都可以删除 2 拖动图像,它将交换您已经删除的拖动图像。 我不能发布所有的拖放代码,因为它是如此之大。但在删掉2张图片后,我写道:
if( $(this).closest( "div" ).find('img').length == 2 ){ // if the blank already have 2 images
initDroppable($(".ui-drop img, .ui-drag img"));
initDraggable($(".ui-drag img, .ui-drop img"));
function initDraggable($elements) {
$elements.draggable({
appendTo: ".blank",
helper: "clone",
revert: "invalid"
});
}
function initDroppable($elements) {
$elements.droppable({
drop: function(event, ui) {
if( !ui.draggable.hasClass('accept') && $(this).attr('attr') != attr ){ // if not drag from the top & not allowed to drag the same image
var old_attr = $(this).attr('attr');
var drag1 = $(this).after(ui.draggable.clone()); //this image want to drag
var drag2 = $(ui.draggable).after($(this).clone()); // this image have to swap
$(ui.draggable).remove();
$(this).remove();
initDroppable($(".ui-drop img, .ui-drag img"));
initDraggable($(".ui-drag img, .ui-drop img"));
} else { // drag from the top of the view
var old_id = $(this).attr('id');
var old_drag_id = '';
old_drag_id = old_id.replace('d_','').replace(/_clone/,'');
$('#'+old_drag_id).show(); // show the image on top of the view
$('#'+old_id).remove(); // remove one of that drop image inside the blank
}
}
});
}
}
我的问题是第一个交换图像总是粘在另一个图像上,我认为这是另一个拖放的冲突。你们有经验做两次拖放吗?我不知道如何修复这个bug。请帮忙。