Javascript 停下来,回到原地
我想在有碰撞停止放置元素时添加一个条件,并将其返回到最后一个位置。 如果检测到div f、元素[i]之间的冲突,则collisionDivDetect返回true 这是我的代码: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' }); $(
我找到了解决方案,但它缺少一些修改。有时它不能正常工作
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;
}