我知道之前已经问过这个问题,但遗憾的是那些似乎没有解决我的问题。
我有一个<table>
,我必须为每个添加dblclick
事件,但我也使用AJAX向页面添加行(页面加载后)。
我已经开始工作,但发布了2个代码,一个有效,另一个没有。
a)此代码适用于我:
$(document).on("dblclick","td",function(){
//THIS WORKS FOR ELEMNTS ADDED AFTER PAGE LOAD
});
b)我之前尝试过的这段代码不起作用:
$("td").on("dblclick","td",function(){
//THIS DIDN'T FOR ELEMNTS ADDED AFTER PAGE LOAD
});
甚至尝试在新添加的<td>
中添加一个类并在第二个参数中传递它,但它似乎没有用。
有人请解释一下,第二种情况是什么问题。?
答案 0 :(得分:2)
有人请解释一下,第二种情况是什么问题。?
您说“甚至尝试向新添加的<td>
”添加一个类,这意味着您正在创建新的<td>
元素。
事件处理程序必须绑定到动态元素的现有“静态”祖先。
您的处理程序$("td").on("dblclick","td",function() {})
没有多大意义。它会听取其他表格单元格中的表格单元格的点击。
查看jQuery教程Understanding Event Delegation以了解有关事件委派的更多信息。