我有新创建的表,我想将按键事件绑定到 td
我已经编写了以下代码,但它不起作用
$("body").on("keypress",".control table tr td",function(e){
alert(9);
});
我用点击替换了按键然后它正在工作
$("body").on("click",".control table tr td",function(e){
alert(9);
});
实际上,正如W3C中所写,onkeypress 事件可以发生在每个 HTML 元素上,但不能发生在<base>
, <bdo>
, <br>
, <head>
, <html>
, <iframe>
, <meta>
, <param>
, <script>
, <style>
, 和<title>
.
你仍然需要有焦点标签。因此,为了对 a 执行此操作td
,您必须使用tabindex
属性。
基于这两个链接,您可以执行以下操作:
<!-- this is td that needs to be focused in order to get onkeypress event -->
<td tabindex="1"></td>
根据这个答案,您可能需要设置父元素contentEditable="false"
(不确定您的文档结构,但也许tr
?)。您也可以尝试为元素contentEditable
显式设置。td