[英]Jquery, Unable to Remove cloned element
When I try to use clone method in my jquery code, I face some issues in it. 当我尝试在我的jquery代码中使用克隆方法时,遇到了一些问题。 I listed it here what I want and what I issue I face.
我在这里列出了我想要的和遇到的问题。
First Of All let me tell what I want, I want that when I click on add button, my code should clone give id's element with data with remove button. 首先让我说说我想要的是什么,我想当我点击添加按钮时,我的代码应该使用删除按钮克隆具有数据的id元素。 ( JS Fiddle )
( JS小提琴 )
Here Is My Code : HTML 这是我的代码: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>
Code Here : JQ 此处代码: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);
}
});
});
I do some search on that and made code like that ( Code here : JS Fiddle ) 我对此进行了搜索,并编写了类似的代码( 此处的代码: JS Fiddle )
But there are some problem in code, (listed below) 1] I'm unable to remove cloned element, I need to clone it atlist 3 time and after that its only remove once when I click on first minus icon. 但是代码中存在一些问题,(在下面列出)1]我无法删除克隆的元素,我需要将其克隆到atlist 3次,此后,当我单击第一个减号图标时,它只会被删除一次。 After that I can't remove more.
之后,我无法删除更多内容。
Can anyone tell me what to do for solve this kind of problem ? 谁能告诉我该怎么做才能解决这种问题?
ie Click on Plus button for clone and click on remove button for remove clone. 即单击加号按钮进行克隆,然后单击删除按钮以删除克隆。
IDs MUST be unique. ID必须是唯一的。 If there is any chance that you might be cloning a node, make sure you replace its ID attribute with something unique and never use IDs inside it unless you're prepared to replace them all too.
如果有可能要克隆节点,请确保用唯一的东西替换其ID属性,并且除非准备好全部替换它们,否则切勿在其中使用ID。 Prefer classes for thi.
优先选择此类。
The problem is with your $("#toremoveclone").click(...)
binding. 问题出在您的
$("#toremoveclone").click(...)
绑定上。 You were missing few things. 你错过了一些东西。 Here is working fiddle .
这是工作的小提琴 。
$("#toremoveclone").click(...)
only binds click event to the first #toremoveclone
. $("#toremoveclone").click(...)
仅将click事件绑定到第一个#toremoveclone
。 toremoveclone
). toremoveclone
)添加了一个类。 Changed event binding to 将事件绑定更改为
$(".cloneelementtable").on('click', '.toremoveclone', function () {..})
$(“。cloneelementtable”)。on('click','.toremoveclone',function(){..})
Learn more about Jquery's event delegation in here & here , since If I explain, I may screw it up :( 在此处和此处了解有关Jquery事件委托的更多信息,因为如果我解释了,我可能会搞砸了:(
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.