我的问题......我似乎无法解雇所有的keydown事件。
我正在使用[enter]和[esc] keydown事件来更新/刷新或退出/刷新某些html表中的数据
有静态表格单元格和动态表格单元格,根据用户搜索词输入填充
动态表来自$ .each循环,但div结构完全相同(并且div id是唯一的)。在这两种情况下,生成的表格单元格都是......
<td class="edit"><div contenteditable="true" id="XYZ">[value]</div></td>
keydown函数完全相同....
$(document).ready(function() {
$("#divA").keydown(function (e) {
if (e.keyCode == 13) {
e.preventDefault();
// send data to server
// refresh stuff
}
if (e.keyCode == 27) {
// refresh stuff
}
});
$("#divB").keydown(function (e) {
if (e.keyCode == 13) {
e.preventDefault();
// send data to server
// refresh stuff
}
if (e.keyCode == 27) {
// refresh stuff
}
});
单独的函数发布日期到服务器是相同的。和更新数据库的PHP也是一样的。并且两者都具有相同的mysql数据结构double, yes null, zero default
。 divB中存在数据,alert($("#divB").text());
显示将在ajax更新中使用的值。
但我猜这一切都不重要,因为我已将问题缩小到这里......
唯一的区别是divA是静态的,divB是在javascript中生成的。如何才能运行divB keydown函数?
答案 0 :(得分:3)
由于某些div是动态的,因此无法使用keydown
将事件绑定到它们。此方法仅在页面加载时绑定到现有div。
您需要的是使用jquery.on()或jquery.live()(如果您的jquery版本支持它,则更新,以便更好地使用它。)