首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >事件输出时,将jQuery可拖动对象恢复到其原始容器

事件输出时,将jQuery可拖动对象恢复到其原始容器
EN

Stack Overflow用户
提问于 2011-04-21 03:00:30
回答 5查看 111.6K关注 0票数 66

我有一个可拖动的项目,如果不是放在一个可丢弃的项目中,它将恢复。这很好用,直到用户在droppable中拖出一个项目。如果他们认为他们犯了一个错误,那么每当他们拉出可拖放对象时,它就会恢复为可放放对象。我更喜欢on out并停用draggable返回到它的原始容器。

我的代码如下,但我提供了a sample on jsFiddle

HTML

<div id="origin">
    <div id="draggable" class="ui-widget-content">
        <p>I revert when I'm not dropped</p>
    </div>
</div>
<div id="droppable" class="ui-widget-header">
    <p>Drop me here</p>
</div>

JavaScript

$(function() {
    $("#draggable").draggable({ 
        revert:  function(dropped) {
           var dropped = dropped && dropped[0].id == "droppable";
           if(!dropped) alert("I'm reverting!");
           return !dropped;
        } 
    }).each(function() {
        var top = $(this).position().top;
        var left = $(this).position().left;
        $(this).data('orgTop', top);
        $(this).data('orgLeft', left);
    });

    $("#droppable").droppable({
        activeClass: 'ui-state-hover',
        hoverClass: 'ui-state-active',
        drop: function(event, ui) {
            $(this).addClass('ui-state-highlight').find('p').html('Dropped!');
        },
        out: function(event, ui) {
                // doesn't work but something like this
                ui.draggable.mouseup(function () {
                var top = ui.draggable.data('orgTop');
                var left = ui.draggable.data('orgLeft');
                ui.position = { top: top, left: left };
            });
        }
    });
});
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5735270

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档