javascript - .on 点击事件并不总是适用于动态添加的表格行
问题描述
我有一个动态添加表行的表和一个 jquery 代码,用于在具有特定类的行上添加 .on click 事件。关键是代码运行良好,但只是有时......当我将鼠标悬停在表格行上时,80% 的调试会话鼠标开始闪烁,并且该事件在该行上单击 20 次后工作。
桌子:
<div id="main-tbl">
<table id="tbl" class="table">
</table>
</div>
jQuery
$("#tbl").on("click", "tr", function () {
alert("test");
});
通过ajax添加行
$.ajax({
url: 'index.aspx/GetData',
contentType: "application/json; charset=utf-8",
dataType: "json",
type: "POST",
success: function (data) {
debugger;
if (data.d.length > 0) {
var newdata = data.d;
$tbl.empty();
$tbl.append('<tr><th>Test</th></tr>');
var rows = [];
for (var i = 0; i < newdata.length; i++) {
rows.push('<tr><td>newdata[i].Test</td></tr>');
}
$tbl.append(rows.join(''));
}
}
});
基础是asp.net,使用signalr+ajax从sqldb加载数据。
有谁知道为什么它有时只工作?
-亚历山大
解决方案
当您处理动态创建的行时,代码应该是这样的。
$(document).on("click", "tr", function () {
alert("test");
});
推荐阅读
- tensorflow - TF Object Detection API 中的迁移学习:如何只训练最后几层的权重?
- pandas - 使用列表理解将相同的 randint 字符串附加到父级以及数据框中的子级
- mongodb - MongoError:第一次连接时无法连接到服务器 [mongo:27017]
- graphql - graphql join-monster 与strapi io的兼容性
- php - PHP 为什么显式类型转换 + 1 可以工作,但不能使用增量运算符
- assembly - 对齐给定指令,但将对齐填充放置在指令之前以外的位置
- swift - 在 swift 4 中迭代 3 度嵌套字典
- firebase - ReferenceError:使用 onAuthStateChanged 时未定义 firebase 错误
- sql - 如果我的 where 条件使用 Hive 给出空输出,如何显示表中的所有记录
- xml - 如何解决 Strings.xml 中高棉字符集的特定无效字符?