我正在尝试从按钮的onClick()函数克隆范围。第一次这很好,但是当我第二次尝试时,它不是克隆。我做错了什么?
这是我的代码的本质。
.col-md-half {
@extend .col-md-1;
width: percentage((0.5 / $grid-columns));
}
此外:
如何在单击“总克隆”按钮时克隆整个集?
我需要使用不同的名称保存数组中的值。这可能吗?
答案 0 :(得分:4)
如何在单击“总克隆”按钮时克隆整个集?
您已使用事件延迟on()
代替:
$('body').on('click','.addmachinerow', function(){
//Event code
})
由于新的.addmachinerow
在克隆后动态添加到页面中。
我需要用不同的名字保存数组中的值吗?
我建议使用数组名[]
,如:
<input name='machine_description[]' />
<input name='voltage_level[]' />
希望这有帮助。
答案 1 :(得分:0)
func(float[],int sz){...}
&#13;
答案 2 :(得分:0)
这个问题是对JQuery选择器的常见误解。如果您使用ID选择器然后切换到类选择器,那么您通常不会注意到行为的差异。 ID selector doc说
ID选择器:如果为多个元素分配了相同的ID,则使用该ID的查询将仅选择DOM中第一个匹配的元素
类选择器:选择具有给定类的所有元素。
这意味着当您克隆目标元素时,您将获得随后的ID选择(JQuery忽略重复项),但如果您不期望JQuery返回多个匹配项,则后续的类选择将使您失望。类选择器非常适合分组元素,但不太适合克隆。
当我在肥皂盒上时 - 每当你使用克隆功能时,你应该考虑并修复你正在制作的潜在重复ID和不需要的类重复。重复的ID肯定是糟糕的显示 - 重复的类实际上可能是设计的,但你仍然应该考虑它们。
在下面的代码示例中,我将类iAmSpartacus
分配给onClick()函数随后克隆的原始范围。每个克隆还获取iAmSpartacus
类,因此我将其从每个新克隆中删除,以确保$(".iAmSpartacus")
选择器始终返回最多一个元素。跨度显示他们当前的class
属性来证明这一点。
// this runs one - shows us classes of original span
var origSpan=$(".iAmSpartacus")
origSpan.html("My classes are: " + origSpan.prop("class"))
$("#daButton").on("click", function(e) {
var newSpan = $(".iAmSpartacus").clone();
newSpan.removeClass("iAmSpartacus"); // remove the dup targetting class
newSpan.appendTo('.edcparent');
newSpan.html("My classes are: " + newSpan.prop("class"))
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<button id="daButton">Click me</button>
<div class="edcparent" style="border: 1px solid red;">
<span class="ecaddingspan iAmSpartacus" style="display: block;">I am a span</span>
</div>