Javascript 若元素已经存在于容器中,那个么我们如何使元素可拖放?
我正在处理jQueryUI,我能够使html元素可拖放,但这些元素在拖放之前不是容器的一部分,这意味着这些元素存在于容器外部,我将所有这些元素拖放到容器内部。落下这些元素后也会在容器内移动。但后来我有了一个想法,我复制了删除元素的html代码并将其放入容器中,然后重新加载浏览器窗口,现在有三个div: 拖放我,使我可以拖动(复制的内容)。我的问题是哪个div在容器内(使我可以拖动)不移动。因此,请任何人帮助我以下是我的代码:Javascript 若元素已经存在于容器中,那个么我们如何使元素可拖放?,javascript,jquery,html,css,jquery-ui,Javascript,Jquery,Html,Css,Jquery Ui,我正在处理jQueryUI,我能够使html元素可拖放,但这些元素在拖放之前不是容器的一部分,这意味着这些元素存在于容器外部,我将所有这些元素拖放到容器内部。落下这些元素后也会在容器内移动。但后来我有了一个想法,我复制了删除元素的html代码并将其放入容器中,然后重新加载浏览器窗口,现在有三个div: 拖放我,使我可以拖动(复制的内容)。我的问题是哪个div在容器内(使我可以拖动)不移动。因此,请任何人帮助我以下是我的代码: $(文档).ready(函数(){ $('.drag').dragga
$(文档).ready(函数(){
$('.drag').draggable({
助手:“克隆”,
附:“身体”,
回复:“无效”
});
$('.container')。可拖放({
接受:“.drag”,
下降:功能(e,u){
var a=u.helper.clone();
var parent=$('.container');
a、 css(“z指数”,1000);
a、 附于(“集装箱”);
var leftAdjust=a.position().left-parent.offset().left;
var topAdjust=a.position().top-parent.offset().top;
a、 css({
左:左调整,
顶部:顶部调整
});
console.log(“信息:已接受:”,a.attr(“类”);
a、 属性('class','dropped')。可拖动({
安全壳:“.容器”
});
}
});
});
。拖动{
文本对齐:居中;
边缘顶部:5px;
宽度:100px;
高度:100px;
颜色:白色;
背景色:红色;
边缘底部:5px;
边框:1px纯黑;
}
.集装箱{
文本对齐:居中;
宽度:400px;
边缘顶部:5px;
左缘:5%;
高度:400px;
颜色:白色;
背景颜色:绿色;
边框:1px纯黑;
}
.放弃{
文本对齐:居中;
宽度:100px;
高度:100px;
颜色:白色;
背景色:红色;
边框:1px纯黑;
}
身体{
显示器:flex;
}
拖动我
到这里来!!
让我拖拉
我没有对您的代码做太多更改,因为我对您的目标了解不多,但在删除后,我将使我可拖动div可拖动(请参阅)
$(文档).ready(函数(){
dodragable();
函数dodragable(){
$('.drag').draggable({
助手:“克隆”,
附:“身体”,
回复:“无效”
});
}
乍一看,我认为您没有对“make me draggable”元素调用.draggable()
:var a=u.helper.clone();
包含删除的元素,而不是您正在删除的元素
如果要使该div在放置时可拖动,则应检查事件目标
否则,如果您想在drop call$('Droped').Dragable({containment:.container“});根据您的评论“我们可以在“make me Dragable”div上进行双击和单击事件吗–”我们可以通过一个技巧来实现,但是在这里进行单次单击检查时会有几秒钟的延迟
请向我们展示问题的工作形式。使用代码编辑器添加完整代码。@hunzaboy:好的,我会添加的,请稍候while@hunzaboy:先生,请看这个例子,请帮助我任何人谢谢你做得很好,但我不想要“让我拖拉”的副本我只想移动它,但拖动我进行克隆。哦,好的,等等while@SatinderSingh检查SinghThank你我想要这样抱歉,但是缺少了一些东西。在克隆drag me对象之前,这是不移动的。也可能是第一次。嗨,这不是第一次移动,我怎么做,请给出任何解决方案。很好,正在工作为什么我们要增加延迟?任何原因。因为你做不到,如果你双击,它需要两次单击。如果你想减少延迟,你可以尝试。。
$('.container').droppable({
accept: ".drag",
drop: function(e, u) {
var a = u.helper.clone();
var parent = $('.container');
a.css("z-index", 1000);
a.appendTo(".container");
var leftAdjust = a.position().left - parent.offset().left;
var topAdjust = a.position().top - parent.offset().top;
a.css({left: leftAdjust, top: topAdjust});
console.log("INFO: Accepted: ", a.attr("class"));
a.attr('class', 'dropped').draggable({
containment: ".container"
});
$('.make_dragable').draggable();
dodragable()
}
});
});
var DELAY = 700, clicks = 0, timer = null;
$(".make_dragable").on("click", function(e){
clicks++; //count clicks
if(clicks === 1) {
timer = setTimeout(function() {
alert("Single Click"); //perform single-click action
clicks = 0; //after action performed, reset counter
}, DELAY);
} else {
clearTimeout(timer); //prevent single-click action
alert("Double Click"); //perform double-click action
clicks = 0; //after action performed, reset counter
}
})
.on("dblclick", function(e){
e.preventDefault(); //cancel system double-click event
});