当我尝试在我的 jquery 代码中使用克隆方法时,我遇到了一些问题。 我在这里列出了我想要的和我面临的问题。
首先让我告诉我我想要什么,我希望当我点击添加按钮时,我的代码应该克隆给 id 的元素和删除按钮的数据。 ( JS Fiddle )
这是我的代码:HTML
<table class="cloneelementtable">
<tr>
<td>
<div class="priceandsize1row"> </div>
</td>
<td>
<div class="priceandsize2row"> </div>
</td>
<td>
<div class="priceandsize3row"> </div>
</td>
<td>
<div class="priceandsize4row"> </div>
</td>
<td>
<div class="priceandsize5row"> </div>
</td>
<td>
<div class="priceandsize6to9row"> </div>
</td>
<td>
<div class="priceandsize6to9row"> </div>
</td>
<td>
<div class="priceandsize6to9row"> </div>
</td>
<td id="divaddmore">
<div class="priceandsize6to9row" id="todoclone">
<img src="http://cdn2.iconfinder.com/data/icons/icojoy/noshadow/standart/gif/24x24/001_01.gif" width="30" height="30">
</div>
</td>
<td>
<div class="priceandsize10row">
<div class="tablecolorgrey">B</div>
</div>
</td>
<td>
<div class="priceandsizeinputsrow">
<div class="aviailableinput">
<input name="" type="text" placeholder="15">
</div>
</div>
</td>
<td>
<div class="priceandsizeinputsrow">
<div class="aviailableinput">
<input name="" type="text" placeholder="15">
</div>
</div>
</td>
<td>
<div class="priceandsizeinputsrow">
<div class="aviailableinput">
<input name="" type="text" placeholder="15">
</div>
</div>
</td>
<td>
<div class="priceandsizeinputsrow">
<div class="aviailableinput">
<input name="" type="text" placeholder="15">
</div>
</div>
</td>
<td>
<div class="priceandsizeinputsrow">
<div class="aviailableinput">
<input name="" type="text" placeholder="15">
</div>
</div>
</td>
<td>
<div class="priceandsizeinputsrow">
<div class="aviailableinput">
<input name="" type="text" placeholder="15">
</div>
</div>
</td>
<div id="showsizeheader">
<td id="tdhide1" style="display:none;">
<div class="priceandsizeinputsrow">
<div class="aviailableinput">
<input name="" type="text" placeholder="16">
</div>
</div>
</td>
<td id="tdhide2" style="display:none;">
<div class="priceandsizeinputsrow">
<div class="aviailableinput">
<input name="" type="text" placeholder="17">
</div>
</div>
</td>
<td id="tdhide3" style="display:none;">
<div class="priceandsizeinputsrow">
<div class="aviailableinput">
<input name="" type="text" placeholder="18">
</div>
</div>
</td>
<td id="tdhide4" style="display:none;">
<div class="priceandsizeinputsrow">
<div class="aviailableinput">
<input name="" type="text" placeholder="19">
</div>
</div>
</td>
<td id="tdhide5" style="display:none;">
<div class="priceandsizeinputsrow">
<div class="aviailableinput">
<input name="" type="text" placeholder="20">
</div>
</div>
</td>
<td id="tdhide6" style="display:none;">
<div class="priceandsizeinputsrow">
<div class="aviailableinput">
<input name="" type="text" placeholder="21">
</div>
</div>
</td>
<td id="tdhide7" style="display:none;">
<div class="priceandsizeinputsrow">
<div class="aviailableinput">
<input name="" type="text" placeholder="22">
</div>
</div>
</td>
<td id="tdhide8" style="display:none;">
<div class="priceandsizeinputsrow">
<div class="aviailableinput">
<input name="" type="text" placeholder="23">
</div>
</div>
</td>
<td id="tdhide9" style="display:none;">
<div class="priceandsizeinputsrow">
<div class="aviailableinput">
<input name="" type="text" placeholder="24">
</div>
</div>
</td>
<td id="tdhide10" style="display:none;">
<div class="priceandsizeinputsrow">
<div class="aviailableinput">
<input name="" type="text" placeholder="25">
</div>
</div>
</td>
<td id="tdhide11" style="display:none;">
<div class="priceandsizeinputsrow">
<div class="aviailableinput">
<input name="" type="text" placeholder="26">
</div>
</div>
</td>
<td id="tdhide12" style="display:none;">
<div class="priceandsizeinputsrow">
<div class="aviailableinput">
<input name="" type="text" placeholder="27">
</div>
</div>
</td>
<td id="tdhide13" style="display:none;">
<div class="priceandsizeinputsrow">
<div class="aviailableinput">
<input name="" type="text" placeholder="28">
</div>
</div>
</td>
<td id="tdhide14" style="display:none;">
<div class="priceandsizeinputsrow">
<div class="aviailableinput">
<input name="" type="text" placeholder="29">
</div>
</div>
</td>
<td id="tdhide15" style="display:none;">
<div class="priceandsizeinputsrow">
<div class="aviailableinput">
<input name="" type="text" placeholder="30">
</div>
</div>
</td>
<td id="tdhide16" style="display:none;">
<div class="priceandsizeinputsrow">
<div class="aviailableinput">
<input name="" type="text" placeholder="31">
</div>
</div>
</td>
<td id="tdhide17" style="display:none;">
<div class="priceandsizeinputsrow">
<div class="aviailableinput">
<input name="" type="text" placeholder="32">
</div>
</div>
</td>
</div>
<td>
<div class="priceandsize10row">
<div class="tablecolorgrey">140</div>
</div>
</td>
<td>
<div class="priceandsize11row">
<div class="tablecolorgrey">$4815.00</div>
</td>
<td>
<div class="priceandsize11row" id="showsize">
<img id="showimg" src="images/img_click_moresizes.jpg" width="35" height="30">
</div>
</td>
</tr>
<tr id="cloneelement">
<td>
<div class="priceandsize1row"> </div>
</td>
<td>
<div class="priceandsize2row"> </div>
</td>
<td>
<div class="priceandsize3row"> </div>
</td>
<td>
<div class="priceandsize4row"> </div>
</td>
<td>
<div class="priceandsize5row"> </div>
</td>
<td>
<div class="priceandsize6to9row"> </div>
</td>
<td>
<div class="priceandsize6to9row"> </div>
</td>
<td>
<div class="priceandsize6to9row"> </div>
</td>
<td>
<div class="priceandsize6to9row" id="toremoveclone">
<img src="http://cdn2.iconfinder.com/data/icons/32pxmania/buttons_21.png" width="30" height="30">
</div>
</td>
<td>
<div class="priceandsize10row">
<div class="tablecolorgrey">B</div>
</div>
</td>
<td>
<div class="priceandsizeinputsrow">
<div class="aviailableinput">
<input name="" type="text" placeholder="15">
</div>
</div>
</td>
<td>
<div class="priceandsizeinputsrow">
<div class="aviailableinput">
<input name="" type="text" placeholder="15">
</div>
</div>
</td>
<td>
<div class="priceandsizeinputsrow">
<div class="aviailableinput">
<input name="" type="text" placeholder="15">
</div>
</div>
</td>
<td>
<div class="priceandsizeinputsrow">
<div class="aviailableinput">
<input name="" type="text" placeholder="15">
</div>
</div>
</td>
<td>
<div class="priceandsizeinputsrow">
<div class="aviailableinput">
<input name="" type="text" placeholder="15">
</div>
</div>
</td>
<td>
<div class="priceandsizeinputsrow">
<div class="aviailableinput">
<input name="" type="text" placeholder="15">
</div>
</div>
</td>
<div id="showsizeheader">
<td id="tdhide1" style="display:none;">
<div class="priceandsizeinputsrow">
<div class="aviailableinput">
<input name="" type="text" placeholder="16">
</div>
</div>
</td>
<td id="tdhide2" style="display:none;">
<div class="priceandsizeinputsrow">
<div class="aviailableinput">
<input name="" type="text" placeholder="17">
</div>
</div>
</td>
<td id="tdhide3" style="display:none;">
<div class="priceandsizeinputsrow">
<div class="aviailableinput">
<input name="" type="text" placeholder="18">
</div>
</div>
</td>
<td id="tdhide4" style="display:none;">
<div class="priceandsizeinputsrow">
<div class="aviailableinput">
<input name="" type="text" placeholder="19">
</div>
</div>
</td>
<td id="tdhide5" style="display:none;">
<div class="priceandsizeinputsrow">
<div class="aviailableinput">
<input name="" type="text" placeholder="20">
</div>
</div>
</td>
<td id="tdhide6" style="display:none;">
<div class="priceandsizeinputsrow">
<div class="aviailableinput">
<input name="" type="text" placeholder="21">
</div>
</div>
</td>
<td id="tdhide7" style="display:none;">
<div class="priceandsizeinputsrow">
<div class="aviailableinput">
<input name="" type="text" placeholder="22">
</div>
</div>
</td>
<td id="tdhide8" style="display:none;">
<div class="priceandsizeinputsrow">
<div class="aviailableinput">
<input name="" type="text" placeholder="23">
</div>
</div>
</td>
<td id="tdhide9" style="display:none;">
<div class="priceandsizeinputsrow">
<div class="aviailableinput">
<input name="" type="text" placeholder="24">
</div>
</div>
</td>
<td id="tdhide10" style="display:none;">
<div class="priceandsizeinputsrow">
<div class="aviailableinput">
<input name="" type="text" placeholder="25">
</div>
</div>
</td>
<td id="tdhide11" style="display:none;">
<div class="priceandsizeinputsrow">
<div class="aviailableinput">
<input name="" type="text" placeholder="26">
</div>
</div>
</td>
<td id="tdhide12" style="display:none;">
<div class="priceandsizeinputsrow">
<div class="aviailableinput">
<input name="" type="text" placeholder="27">
</div>
</div>
</td>
<td id="tdhide13" style="display:none;">
<div class="priceandsizeinputsrow">
<div class="aviailableinput">
<input name="" type="text" placeholder="28">
</div>
</div>
</td>
<td id="tdhide14" style="display:none;">
<div class="priceandsizeinputsrow">
<div class="aviailableinput">
<input name="" type="text" placeholder="29">
</div>
</div>
</td>
<td id="tdhide15" style="display:none;">
<div class="priceandsizeinputsrow">
<div class="aviailableinput">
<input name="" type="text" placeholder="30">
</div>
</div>
</td>
<td id="tdhide16" style="display:none;">
<div class="priceandsizeinputsrow">
<div class="aviailableinput">
<input name="" type="text" placeholder="31">
</div>
</div>
</td>
<td id="tdhide17" style="display:none;">
<div class="priceandsizeinputsrow">
<div class="aviailableinput">
<input name="" type="text" placeholder="32">
</div>
</div>
</td>
</div>
<td>
<div class="priceandsize10row">
<div class="tablecolorgrey">140</div>
</div>
</td>
<td>
<div class="priceandsize11row">
<div class="tablecolorgrey">$4815.00</div>
</td>
</tr>
</table>
代码在这里:JQ
var id = 0;
$(document).ready(function () {
$('#todoclone').click(function () {
$('#cloneelement').clone().appendTo(".cloneelementtable");
id++;
});
/*$('#toremoveclone').click(function() {
$('#cloneelement').closest('#cloneelement').fadeOut("slow", function(){
$(this).remove();
});
});*/
$("#toremoveclone").click(function () {
console.log(id);
if (id > 1) { //Only apply if the lang field is more than 1
id = id - 1;
$("#cloneelement:last").remove();
console.log(id);
}
});
});
我对此进行了一些搜索并编写了类似的代码(此处的代码:JS Fiddle )
但是代码中有一些问题,(如下所列) 1] 我无法删除克隆的元素,我需要在列表中克隆它 3 次,然后当我单击第一个减号图标时它只删除一次。之后我无法删除更多内容。
谁能告诉我如何解决这类问题?
即单击加号按钮进行克隆,然后单击删除按钮删除克隆。
最佳答案
问题出在您的 $("#toremoveclone").click(...)
绑定(bind)上。
你错过了一些东西。这是 working fiddle .
问题:
- ID 应该是唯一的。
- 您期望事件委托(delegate),但没有进行设置。
$("#toremoveclone").click(...)
仅将点击事件绑定(bind)到第一个#toremoveclone
。- 检查添加超过 2 个克隆(您的代码需要超过 1 个克隆才能删除一个)并删除您的 fiddle 中的第一个。 .
- 它将被删除。但其他人不会,因为他们没有绑定(bind)到任何点击事件。
我所做的更改:
关于javascript - Jquery,无法删除克隆的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17342199/