我有一些Jquery,我用克隆div,裏面的div是一個輸入,做一個計算。克隆格與新計算器的新divs
當我克隆div並創建一個新的div時,計算不適用於新的div。我知道這個計算只能按照我寫的方式進行。我搜索了,但找不到我在找什麼。
我也有一個問題,當我在輸入中添加一個數字的計算工作的第一個div,但它也刪除我的按鈕。
如何爲每個新克隆的div創建新計算? 如何停止計算刪除我的添加/刪除按鈕?
function clone() {
$(this).parents(".clonedInput").clone()
.appendTo("body")
.attr("id", "clonedInput" + cloneIndex)
.find("*")
.each(function() {
var id = this.id || "";
var match = id.match(regex) || [];
if (match.length == 3) {
this.id = match[1] + (cloneIndex);
}
})
.on('click', 'button.clone', clone)
.on('click', 'button.remove', remove);
cloneIndex++;
}
function remove() {
$(this).parents(".clonedInput").remove();
}
$("button.clone").on("click", clone);
$("button.remove").on("click", remove);
// calculator
$(document).ready(function() {
$(".calculate").bind("keyup change", function(e) {
var cabwidth = parseFloat($("#cabwidth").val()) || 0;
var ply = 1.4375;
var value = cabwidth - ply;
if (!isNaN(value) && value !== Infinity) {
$("#sum").text(value);
}
});
});
body {
padding: 10px;
}
.clonedInput {
padding: 10px;
border-radius: 5px;
background-color: #def;
margin-bottom: 10px;
}
.clonedInput div {
margin: 5px;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="clonedInput1" class="clonedInput">
<input type="text" class="calculate" id="cabwidth" placeholder="Cabinet Width">
<div id="sum" />
<div class="actions">
<button class="clone">Add</button>
<button class="remove">Remove</button>
</div>
</div>
下面是一個例子的jsfiddle:jsfiddle
請注意,使用_id_克隆節點會導致_id loss_或_invalid html_(因爲id應該是文檔唯一的)。此外,克隆節點不會克隆任何事件偵聽器;這些將需要重新連接到克隆節點 –
,所以我應該使用類而不是? – AlwaysLearning
爲有效的HTML,是的。你應該只有唯一的ID – jasonflaherty