2017-07-08 71 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