javascript - 如何管理特定 div 上的事件?

标签 javascript html

如果用户单击 div(聚焦 div),我想捕获特定 div 的一些事件,捕获键盘事件(如果最后一次单击不在 div 中(不聚焦 div)则不捕获)

我尝试了一些东西,但没有成功:JSFiddle

document.getElementById("box").onkeydown = function(event) {
    if (event.keyCode == 13) { // ENTER
        alert("Key ENTER pressed");
    }
}

即使我点击 div,此代码也不起作用。

纯 JS 解决方案

最佳答案

div 元素不是 interactive content默认情况下。这意味着 return 键不会触发。如果你想让你的 div 元素是可交互的,你可以给它 contenteditable 属性:

<div id="box" contenteditable></div>

现在为了触发事件,您需要首先聚焦 div 元素(通过单击或跳转到它)。现在您按下的任何键都将由您的 onkeydown 事件处理。

JSFiddle demo .

关于javascript - 如何管理特定 div 上的事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23287446/

相关文章:

php - 使用复选框检查要删除的列

javascript - setTimeout 仅在初始点击时起作用,而不是在后续点击时起作用(jquery)

javascript - 如何使用普通 JavaScript 附加 <svg> 元素?

javascript - Angular.js 图像 404 未找到

javascript - 如何在 html 中单击时绑定(bind) NgbModalOptions 大小

html - 圆形动画不适用于 SVG

javascript - 如何使用 Javascript 获取包含另一个范围的范围的值?

python - 使用 Django 进行日期过滤——如何将开始和结束日期发送到我的 View ?

javascript - 以太坊 Web3.js 返回 "Cannot find module ' web3-requestManager'"

javascript - 为什么自关闭脚本元素不起作用?