gpt4 book ai didi

javascript - 如何克隆不同颜色的 div block ?

转载 作者:行者123 更新时间:2023-11-30 11:27:10 24 4
gpt4 key购买 nike

我正在尝试制作一个容器,其中包含两个颜色的 div block (一个红色和一个绿色)和一个图像,可以将这些元素拖放到拖放区中。图像已正确克隆,但我可以使代码适应不同的色 block 。我想我需要将 .drag 下的行 background-color:green; 调整为一个变量,但不确定如何调整。

$(document).ready(function () {

var x = null;

//Make element draggable
$(".drag").draggable({
helper: 'clone', // allow to be dragged
//cursor: 'move',
//tolerance: 'fit'
});

$("#droppable").droppable({

drop: function (e, ui) {

if ($(ui.draggable)[0].id != "") {
x = ui.helper.clone();
ui.helper.remove();
x.draggable({
helper: 'original', // once inside drop zone, dragged again makes it move in there
containment: '#droppable', // once dragged in drop zone, it's contained there
tolerance: 'fit' //?
});
/* x.resizable({
maxHeight: 40,
minHeight: 40,
minWidth: 50
}); */
x.appendTo('#droppable'); // once dragged into drop zone, append it there
}

}
});

});
.col{
float:left;
padding: 5px 5px 5px 5px;
margin: 5px 5px 5px 5px;
}

#col1{
width:200px;
height:500px;
border:2px solid black;

}

.drag{
width:100px;
border:1px solid black;
height:40px;
position:relative;
margin: 2px 2px 2px 2px;
background-color:green;
}

#droppable{
width:500px;
height :500px;
border:2px solid black;
}

#drag1{
background-color:red;
}

#drag2{
background-color:green;
}
<html>
<head>
<script src="http://www.google.com/jsapi" type="text/javascript"></script>
<script type="text/javascript" >
google.load("jquery", "1.6.3");
google.load("jqueryui", "1.8.16");
</script>
<link rel="stylesheet" type="text/css" href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.7.1/themes/base/jquery-ui.css"/>
<script src="dragndrop.js" type="text/javascript"></script>
<link rel='stylesheet' href='style.css'>

</head>
<body>
<div id="wrapper">
<div class = "col" id="col1">
<div id="drag1" class="drag">
</div>
<div id="drag2" class="drag">
</div>
<img src='img_logo.gif' id="drag3" class="drag">
</div>
</div>
<div class="col" id ="droppable">
</div>
</div>
</body>
</html>

最佳答案

这里的答案很简单。 jQuery UI 只复制到克隆类,而不是 id,因为它的标识符在 DOM 中只能存在一次

所以只需将 drag1 和 drag 2 更改为类

$(document).ready(function () {

var x = null;

//Make element draggable
$(".drag").draggable({
helper: 'clone', // allow to be dragged
//cursor: 'move',
//tolerance: 'fit'
});

$("#droppable").droppable({

drop: function (e, ui) {

if ($(ui.draggable)[0].id != "") {
x = ui.helper.clone();
ui.helper.remove();
x.draggable({
helper: 'original', // once inside drop zone, dragged again makes it move in there
containment: '#droppable', // once dragged in drop zone, it's contained there
tolerance: 'fit' //?
});
/* x.resizable({
maxHeight: 40,
minHeight: 40,
minWidth: 50
}); */
x.appendTo('#droppable'); // once dragged into drop zone, append it there
}

}
});

});
.col{
float:left;
padding: 5px 5px 5px 5px;
margin: 5px 5px 5px 5px;
}

#col1{
width:200px;
height:500px;
border:2px solid black;

}

.drag{
width:100px;
border:1px solid black;
height:40px;
position:relative;
margin: 2px 2px 2px 2px;
background-color:green;
}

#droppable{
width:500px;
height :500px;
border:2px solid black;
}

.drag1{
background-color:red;
}

.drag2{
background-color:green;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<script
src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"
integrity="sha256-T0Vest3yCU7pafRw9r+settMBX6JkKN06dqBnpQ8d30="
crossorigin="anonymous"></script>
<div id="wrapper">
<div class = "col" id="col1">
<div id="drag1" class="drag drag1">
</div>
<div id="drag2" class="drag drag2">
</div>
<img src='img_logo.gif' id="drag3" class="drag drag2">
</div>
</div>
<div class="col" id ="droppable">
</div>

关于javascript - 如何克隆不同颜色的 div block ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47578952/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com