当我在文本区域中添加文本时,此示例应该触发警报,由于某种原因,当我使用 $('#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/