如何以编程方式为新元素注册事件?我正在使用自动完成库和数据表库(添加行函数),自动完成事件仅应用于现有行,而不应用于新插入的行。如何解决此问题?请帮助...
我试过了...
$('#addRow').on('click', function () {
let input = document.createElement("input")
input.setAttribute("type", "text");
input.setAttribute("class", "material_no");
input.setAttribute("id", "material_no");
input.setAttribute("placeholder", "Enter material no.");
table.row.add( [
'-',
`
<input type='text' class='material_no' id = 'material_no' placeholder = 'Enter Material No.'/>
`,
'-',
'-',
'-',
'-',
'-',
'-',
'-',
'-',
'-',
] ).draw();
counter++;
} );
// Automatically add a first row of data
$('#addRow').click();
//autocomplete library
$('.material_no').each(function(i, e) {
$(this).bind('change').autocomplete({
source: '/mef/suggestions.php',
change: function( event, ui ) {
console.log($(this).val())
console.log(table.row($(this).parent()).index())
// $.ajax({
// url: '/mef/ajax/part_names.php',
// method: 'POST',
// data: { part_code: $(this).val()},
// success: data => {
// $(`td:eq(${i})`).html(data)
// console.log(data)
// },
// error: err => console.log(err)
// })
return false;
},
})
})
1条答案
按热度按时间xwmevbvl1#
我通过在datatable的
draw
函数中放置事件来解决这个问题。我不知道这是一个好方法还是会在未来引起bug ...