我正在使用Jquery在click函数上创建div元素。还具有可拖动和可调整大小的属性。使用背景图像按预期生成div。
我还尝试使用$("#box").html("Test")
在其上附加文字。但是这会导致框中没有可调整大小或可拖动。
这是我的CSS:
<style>
#mover {
border: 2px solid;
padding: 10px 40px;
width: 300px;
/*resize: both;*/
/*overflow: auto;*/
}
.comp1 {
border: 2px solid;
width: 100px;
height: 100px;
position: absolute;
background-image: url("Images/florist.png");
background-size: cover;
background-repeat: no-repeat;
}
.comp2 {
border: 2px solid;
width: 100px;
height: 100px;
position: absolute;
background-image: url("Images/caterer.jpg");
background-size: cover;
background-repeat: no-repeat;
border-radius:50%;
}
</style>
脚本:
<script>
$(function () {
$(document).ready(function () {
$("#AddComp").click(function () {
$("#box").append("<div class='comp1'></div>");
$("#box").html("TEst");
$("#box .comp1").resizable({ containment: "#box" });
$("#box .comp1").draggable({ containment: "#box" });
});
$("#circle").click(function () {
$("#box").append("<div class='comp2'></div>");
$("#box .comp2").resizable({ containment: "#box" });
$("#box .comp2").draggable({ containment: "#box" });
});
});
});
</script>
HTML:
<a id="AddComp">Square</a>
<a id="circle">Circle</a>
<div id="box" style="border:double;min-height:700px;min-width:900px">
</div>
P.S。 :我想用jquery或css在创建的div上附加文本。
答案 0 :(得分:2)
执行此语句时
$("#box").html("Test");
您正在销毁先前在.comp1
元素中创建的#box
元素(.comp2
元素的相同问题)。可能你可能想要
$("#box .comp1").text("Test");
作为旁注,请缓存选择器,特别是如果您需要多次使用它们,或者链接方法以避免对jQuery
函数进行无用(昂贵)调用
答案 1 :(得分:0)
您不能使盒子可调整大小或可拖动。您对其某些后代(.comp1
和.comp2
元素)执行此操作。
当您$("#box").html("Test")
时,您正在删除这些元素并将其替换为文本节点。
您需要执行以下操作之一:
append()
新内容,因此它不会删除旧控件答案 2 :(得分:0)
您必须将文字添加到.comp1
$("#box .comp1").html("Test")