我的问题...我似乎无法触发所有按键事件。
我正在使用[enter]和[esc] keydown事件来更新/刷新或退出/刷新某些html表中的数据
有静态表格单元格和动态表格单元格,它们是根据用户搜索词输入填充的
动态表来自$ .each循环,但div结构完全相同(并且div id是唯一的)。在这两种情况下,结果表单元格都是...
<td class="edit"><div contenteditable="true" id="XYZ">[value]</div></td>
键控功能完全相同....
$(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中,keydown会停止[enter]换行并运行代码
在divB中,keydown不会停止[enter]换行符,并且任何代码都不会运行
唯一的区别是divA是静态的,而divB是用JavaScript生成的。如何使divB keydown函数运行?
最佳答案
由于某些div是动态的,因此您不能使用keydown
将事件绑定到它们。此方法仅在页面加载时绑定到现有的div。
您需要使用jquery.on()或jquery.live()(在较新的版本上,因此,如果您的jquery版本支持它,最好使用它)。
关于javascript - 在contenteditable div中触发所有keydown/up事件,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11599009/