jQuery.draggable() – 恢复按钮单击

我有几个 draggable&我页面上的 droppable元素,它们具有接受属性.

目前我的代码设置如下:

$(".answer." + answer).draggable({
    revert: "invalid",snap: ".graph"
});
$(".graph." + graph).droppable({
    accept: ".answer." + answer
});

因此,如果答案不正确,则将其恢复到原来的位置.

用户还需要能够重置页面上的所有内容.我尝试了以下,但它不起作用:

$("btnReset").click(function(){
   $(".graph.A").draggable({revert:true});
});

解决方法

由于没有内置方法可以满足您的需求,因此您必须自己模拟恢复行为.您可以存储每个可拖动元素的原始位置,然后在单击重置按钮时,将它们动画回这些位置.

这是一个简化的jsFiddle example.

jQuery的:

$("#draggable").draggable({
    revert: "invalid"
});
$("#draggable2").draggable({
    revert: "invalid"
});
$("#droppable").droppable({
});
$("#btnReset").click(function() {
    $("#draggable,#draggable2").animate({
        "left": $("#draggable").data("left"),"top": $("#draggable").data("top")
    });
});
$(".ui-widget-content").data("left",$(".ui-widget-content").position().left).data("top",$(".ui-widget-content").position().top);

HTML:

<div id="draggable" class="ui-widget-content">
    <p>I revert when I'm dropped</p>
</div>
<div id="draggable2" class="ui-widget-content">
    <p>I revert when I'm dropped</p>
</div>
<button id="btnReset">Reset</button>
<div id="droppable" class="ui-widget-header">
    <p>Drop me here</p>
</div>​

相关文章

页面搜索关键词突出 // 页面搜索关键词突出 $(function () {...
jQuery实时显示日期、时间 html: &lt;span id=&quot...
jQuery 添加水印 &lt;script src=&quot;../../../.....
中文:Sys.WebForms.PageRequestManagerParserErrorExceptio...
1. 用Response.Write方法 代码如下: Response.Write(&q...
Jquery实现按钮点击遮罩加载,处理完后恢复 思路: 1.点击按...