2017-07-08 45 views
2

jQuery的最接近格取出未工作我发现同样的问题在计算器,但这些不回答,解决我的问题jQuery的:最近()DIV取出未工作

closest div remove js fiddle here

<script> 
$(document).ready(function(){ 
    var counter = 4; 
    var name = 1; 
    var qty = 1; 
    var price = 1; 
    $('#addproduct').click(function() { 
     $('#dynamicInput').append('<div class="clearfix"></div><div class="pdd" id="dlt"><div class="col-sm-3"><div class="row">' + (counter++)+' <label>Product Name</label></div></div><div class="col-sm-3"><div class="row"><select name="productnm'+(name++)+'"><option>Select Product</option><option>Rice</option><option>Fried Rice</option><option>Biryani</option></select></div></div><div class="col-sm-3"><div class="row"><label>Quantity</label></div></div><div class="col-sm-1 row"><div class="row qunatity-number"><input type="number" name="qunatity'+(qty++)+'" value="1" /></div></div><div class="col-sm-2"><div class="row qunatity-totalprice"><input type="text" name="totalprice'+(price++)+'" placeholder="Total Price" disabled /></div></div><a class="deleter" ><i class="fa fa-trash-o" aria-hidden="true"></i></a></div> '); 
    }); 
    $('.deleter').click(function(){ 
     $(this).closest("#dlt").remove(); 
    }); 

}); 

</script> 
+0

可能重复的[Jquery事件处理程序不工作在动态内容](https://stackoverflow.com/questions/15090942/jquery-event-handler-not-working-on-dynamic-content) – trincot

回答

3

这里是解决方案you https://jsfiddle.net/woeot0L4/1/

$(document).on('click', '.deleter',function(){ 
    $(this).parent().remove(); 
}); 

由于您正在追加deleter类元素dynamic点击将不起作用。无论您需要将事件绑定到类还是单击使用文档。

+1

其工作.. .. – Inderjeet

+0

'$('#dynamicInput')'而不是'$(document)'在这里会更好 – James

0

既然你算账添加元素到DOM,点击事件不会绑定到你的.deleter。你在每次创建这样一个新的元素时调用它:https://jsfiddle.net/woeot0L4/5/

+0

Ew!请参阅[事件代表团](https://learn.jquery.com/events/event-delegation/)! – James

1

你一个click事件addproduct添加到deleter之前创建它,因为它是在click创建,当文件是没有发生过加载。您将需要创建一个on事件,像这样:

$('#dynamicInput').on("click", ".deleter", function() { 
    $(this).parent().remove(); 
}); 

你还需要确保你没有重复HTML id秒。这是HTML编程的一种不正确的方式。当某些东西是唯一的时,使用id。如果不是唯一的,请使用class