Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/434.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 停下来,回到原地_Javascript_Jquery Ui Draggable_Jquery Ui Droppable - Fatal编程技术网

Javascript 停下来,回到原地

Javascript 停下来,回到原地,javascript,jquery-ui-draggable,jquery-ui-droppable,Javascript,Jquery Ui Draggable,Jquery Ui Droppable,我想在有碰撞停止放置元素时添加一个条件,并将其返回到最后一个位置。 如果检测到div f、元素[i]之间的冲突,则collisionDivDetect返回true 这是我的代码: 我找到了解决方案,但它缺少一些修改。有时它不能正常工作 function clonage(elem) { this.c = "#"+elem; $(c).draggable({revert: 'invalid',helper: 'clone',cursor: 'move',tolerance: 'fit' }); $(

我想在有碰撞停止放置元素时添加一个条件,并将其返回到最后一个位置。 如果检测到div f、元素[i]之间的冲突,则collisionDivDetect返回true

这是我的代码:


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

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;
    }
}); }

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;
    }