我正在制作一个动态表系统,可以在行为空时通过更改行来添加行。我的问题是新添加的行对我的事件处理程序来说是“不可见的”。 这些是我的事件处理程序:
$('tr td ').on('blur', 'input.autoupdate',function(event){
event.stopPropagation();
event.preventDefault();
rid = $(this).closest('tr').attr('id');
});
$('tr td ').on('focus', 'input.autoupdate',function(e){
e.stopPropagation();
e.preventDefault();
newid = $(this).closest('tr').attr('id');
check();
});
这是我添加行的函数:
var table_row = "<tr><td><input></td></tr>";
$(table_row).appendTo('#auto_insert');
谁能告诉我我做错了什么?
最佳答案
这将解决您的问题:
$(document).on('blur', 'tr td input.autoupdate',function(event){
event.stopPropagation();
event.preventDefault();
rid = $(this).closest('tr').attr('id');
});
$(document).on('focus', 'tr td input.autoupdate',function(e){
e.stopPropagation();
e.preventDefault();
newid = $(this).closest('tr').attr('id');
check();
});
问题是:
您的 trs 和 tds 是动态添加的,因此它们没有事件监听器来监听它们上发生的事件,这就是您在动态添加的元素上设置事件监听器的方法。
关于javascript - 有人知道为什么我的 jquery 在我的 html 表中找不到新插入的行吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24801421/