2

我正在写在JavaScript中一个简单的纸牌游戏,我想有一个“卡” img播放时捕捉到它的目标。我通过从当前父项中删除img并将其放入新父项(目标)来完成此操作。然而,当我放置img在与jQuery的.appendTo(),卡捕捉到屏幕的角落新的容器。移动一个jQuery可拖动()元素,以新的父

看到这个demo的工作示例。

是否有一个原因的div捕捉到屏幕的角落时,它的移动到一个新的父?我想知道当我更改div的父项时,是否有遗留/遗失的css属性。

任何帮助,将不胜感激。

- 编辑 -

其他信息:尽管已经建议我只需把它添加到我的下落处理器(工作) -

$(ui.draggable).css({'top' : '0', 'left' : '0'});

我想.animate()到这个位置,所以瞬间不是瞬时的。尽管卡片确实在最终位置上出现,但它首先会卡到角落,然后进入正确的位置。我想避免第一次突然到达角落。

回答

3
$(ui.draggable).css({'top' : '0', 'left' : '0'}); 

对不起,我不得不离开工作,但试试这个:

$("#target").droppable({ 
    drop: function (event, ui) { 
     var offset = $('#target').offset() 
     var top = parseInt($(ui.draggable).css('top')) - offset.top; 
     var left = parseInt($(ui.draggable).css('left')) - offset.left;    
     $(ui.draggable).appendTo("#target"); 
     $(ui.draggable).css({'top' : top, 'left' : left}) 
     $(ui.draggable).animate({ 
     top: 0, 
     left: 0   
     }, 500, function() { 
     // Animation complete. 
     }); 
    } 
}); 

http://jsfiddle.net/hsjvP/22/

+0

感谢您的评论 - 这是我的问题是如何措辞首先一个完美的解决方案。不幸的是,它有点复杂 - 请参阅我的编辑。 – 2012-08-03 14:48:26

相关问题