javascript - 为什么这个 javascript onkeypress 事件不起作用

标签 javascript jquery dom-events keyboard-events

当我在文本区域中添加文本时,此示例应该触发警报,由于某种原因,当我使用 $('#sentid1').onkeypress 时,它会发出警报,并且仅当我使用时才有效$('#sentid1').onkeypress.

html部分:

<div id="textarea" contenteditable=""><span id="sentid1" class="sentence"> This is sentence 1. </span><span id="sentid2" class="sentence"> This is sentence 2.</span></div>

Javascript/jQuery 部分:

 if (1==1) {
  $('#sentid1').onkeypress = function(event) {
            alert("theid: " + this.id);
        };  
  } else{
     document.onkeypress = function(event) {
              alert("theid: " + this.id);
           };   
  }

最佳答案

您如何测试按键事件?为了触发按键事件,您需要您的元素聚焦或者是触发按键的其他元素的父元素,因此按键冒泡

您正在 try catch span 上的按键,默认情况下 span 是不可聚焦的,让我们以 tabindex 为例

<span id="sentid1" class="sentence" tabindex="0"> This is sentence 1. </span>

现在您实际上可以单击此范围,按某个键并查看预期结果

关于javascript - 为什么这个 javascript onkeypress 事件不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49338693/

相关文章:

javascript - jQuery .hover() 动画不平滑 - 悬停效果上有小凹凸/急动

javascript - 在 IE 的文本区域内强制 Javascript 键盘事件

javascript - 如何在 HTML 中创建一个真正的 "onchange"事件(无 jQuery)?

javascript - 仅加载点击的图像

javascript - TypeError : navigator. currentLang 不是函数

动态元素的 foreach 类上的 Javascript 函数脚本

javascript - float 缩略图库,悬停时有额外的缩略图内容。如何允许悬停的缩略图与邻居重叠?

javascript - 使用构造函数弹跳动画?

javascript - 将数据库替换为 postgreSQL 后,Sequelize 时间比较失败

javascript - JS - 这个输入元素来自哪里(amCharts)?