【发布时间】:2014-03-09 23:31:01
【问题描述】:
我有一个可拖动的 div,我希望能够将其拖放到可放置的 div 中。
一旦放下,它就不再是可拖动的,它应该位于可放置 div 的中心。
我得到了这个工作,但我现在想在删除 div 时添加一个 AJAX 请求。如果 AJAX 调用成功,那么可拖动 div 应该不再是可拖动的,并且应该位于可放置 div 的中心。
使用我当前的代码,当我添加 AJAX 调用时,一切正常,然后可放置的 div 被放回它开始的位置。有谁知道我怎样才能阻止这种情况发生?
我有问题的演示here
代码如下:
HTML
<div id="playingArea" class="droppable">Drop in here</div>
<div id="player" class="draggable">Drag Me</div>
CSS
#playingArea{
border:1px solid black;
min-height: 150px;
min-width: 150px;
margin-bottom: 30px;
}
#player{
border:1px solid red;
height: 50px;
width: 50px;
}
Javascript
$(function() {
$('.draggable').draggable({
containment : 'document',
cursor : 'move',
revert : true
});
$('.droppable').droppable({
accept : '.draggable',
hoverClass : 'hovered',
drop : handleDrop
});
})
function handleDrop(event, ui) {
$.ajax({
url : "/echo/json/",
dataType : 'json',
error : function(data, errorThrown) {
alert('request failed :' + errorThrown);
},
success : function(data) {
positionBox(event, ui);
}
});
}
function positionBox(event, ui) {
ui.draggable.draggable('disable');
ui.draggable.position({
of : $("#playingArea"),
my : 'center',
at : 'center'
});
ui.draggable.draggable('option', 'revert', false);
$("#player").css({
opacity : 1
})
alert("looks ok now - but it won't stay here");
}
【问题讨论】:
标签: javascript jquery jquery-ui draggable droppable