首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >停止投放并返回其位置

停止投放并返回其位置
EN

Stack Overflow用户
提问于 2015-11-25 17:53:24
回答 1查看 56关注 0票数 0

当我有碰撞停止丢弃元素时,我想添加一个条件,并将其返回到最后一个位置。如果检测到div (f,elementsi)之间的冲突,则collisionDivDetect返回true。

这是我的代码:https://jsfiddle.net/tmedamine/60f30bwr/2/

代码语言:javascript
复制
function clonage(elem) {
    var fla = false;
    this.c = "#"+elem;
    $(c).draggable({revert: 'invalid',helper: 'clone',cursor: 'move',tolerance: 'fit'  });
    var rs ;
    $("#surface").droppable({
        drop: function(e, ui) {
            x = ui.helper.clone(false);
            x.draggable({
                tolerance: 'intersect',
                helper: 'original',
                containment: 'parent',
                tolerance: 'fit'
            });

            x.find('.ui-resizable-handle').remove();
            F = x[0].id;
            x.appendTo(".surface");
            ui.helper.remove();
            for(i in elements){
                if(elements[i]!=F && elements[i]!="surface" && elements[i]!="menu")
                {    
                    fla = collisionDivDetect(F,elements[i]);
                    if(fla == true){
                        console.log('collision');
                        /** Stop Drop and return to last position ***/
                    }
                }  
            }
        }
    });
}

https://jsfiddle.net/tmedamine/60f30bwr/2/

EN

回答 1

Stack Overflow用户

发布于 2015-11-26 00:06:11

我找到了解决方案,但是遗漏了一些修改。有时它不能正常工作。

代码语言:javascript
复制
function clonage(elem) {
this.c = "#"+elem;
$(c).draggable({revert: 'invalid',helper: 'clone',cursor: 'move',tolerance: 'fit' });
$(".droppable").droppable({
    drop: function(e, ui) {
        x = ui.helper.clone(false);
        if(!inArray(elements,x[0].id)){
            if(!(ui.draggable[0].className).indexOf('tableRonde')){
                x[0].id = 'tableRonde'+nbtr; nbtr++; rs = nbtr-1;
                param= 'tableRonde'+rs;tname = ntr+rs;
                x.attr('name',tname);
                x.html(tname +' <a href="#" onClick="openPopup('+param+')">Editer</a>');
                x[0].className = 'tableRonde1';
            }else if (!(ui.draggable[0].className).indexOf('table')){
                x[0].id = 'table'+nbt; nbt++;rs = nbt-1;
                param= 'table'+rs;tname = nt+rs;
                x.attr('name',tname);
                x.html(tname +' <a href="#" onClick="openPopup('+param+')">Editer</a>');
                x[0].className = 'table1';
            }else if (!(ui.draggable[0].className).indexOf('zone')){

                x[0].id = 'zone'+nbz; nbz++;rs = nbz-1;
                param= 'zone'+rs;tname = nz+rs;
                x.attr('name',tname);
                x.html(tname +' <a href="#" onClick="openPopup('+param+')" >Editer</a>');
                x[0].className = 'zone1';

            }else if (!(ui.draggable[0].className).indexOf('plan')){
                x[0].id = 'plan'+nbp; nbp++;rs = nbp-1;
                param= 'plan'+rs;tname = np+rs;
                x.attr('name',tname);
                x.html(tname +' <a href="#" onClick="openPopup('+param+')">Editer</a>');
                x[0].className = 'plan1';
            }
            elements.push(x[0].id);
        };
        x.draggable({
            tolerance: 'intersect',
            helper: 'original',
            containment: 'parent',
            tolerance: 'fit',
            revert: 'invalid'                
        });
        x.find('.ui-resizable-handle').remove();
        ui.helper.remove();
        x.resizable({
            minHeight: 60,
            minWidth: 50,
            containment: 'parent'
        });
        F = x[0].id;
        x.attr('width','0px');
        x.attr('heigth','0px');
        x.appendTo(".surface");
    },
    accept:function(){
        fla = true;
        for(i in elements){
            if(elements[i]!=F && elements[i]!="surface" && elements[i]!="menu" && elements[i].indexOf("zone") && F.indexOf("zone"))
            {    
                if(collisionDivDetect(F,elements[i])){
                    fla = false;
                }   
                if(collisionDivDetect(elements[i],F)){
                   fla = false;
                }
            }  
        } 
        return fla;
    }

});}

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33913315

复制
相关文章

相似问题

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