我有一个表,其行是由 ajax 查询响应生成的,例如:
var inp = '<input id="new_po_qty" style="text-align:center" type="text" value="1">';
$('<tr id="new_po_item_row">').html('<td style="text-align:center">' + sku_id + '</td><td style="text-align:center">' + inp + '</td><td id="new_po_cp" style="text-align:center">' + cost_price + '</td><td id="new_po_total_cp" style="text-align:center">' + cost_price + '</td>').appendTo('#new_po_body');
现在我编写了一个 jquery 函数来捕获表行中 inp
变量的更改。但是 jquery 函数没有捕获我在输入框中所做的更改。
Jquery函数:
$('#new_po_qty').on('change paste', function(){
alert('changes made.');
$.niftyNoty({
type:"primary",icon:"",title:"Start Adding Products.",container:"floating",timer:5000
});
});
我的功能做错了什么?
最佳答案
使用事件委托(delegate):
$(document).on('change paste', '#new_po_qty', function(){
alert('changes made.');
$.niftyNoty({
type:"primary",icon:"",title:"Start Adding Products.",container:"floating",timer:5000
});
});
关于javascript - jquery函数无法捕获动态生成的id,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34824117/