javascript - onChange / onInput 替代品?
问题描述
我正在创建一个打字测试页面并遇到一个小问题。
我试图在用户键入时启动计时器,并且使用 onInput 可以工作,但问题是每次我键入 textArea 时它都会注册,这会导致 starttimer 函数重复自身。
onChange 有效,但仅在我在页面外部单击后才有效,这很有意义,但不是我要寻找的。我需要在用户开始打字后立即启动计时器。也可以使用 onChange 停止功能,但在我点击页面外部后计时器开始。
是否有适合我正在寻找的 JS 事件,或者有没有办法更改 onInput 或 onChange 来解决我遇到的问题。
JavaScript
document.getElementById("test-area").onchange = function () {
startTimer(1);
};
谢谢你。
解决方案
像这样尝试,在 JavaScript 中,使用 addEventListener() 方法: addEventListener() 方法将事件处理程序附加到指定元素。
document.getElementById("test-area").addEventListener("change", function () {
if(!this.value.length){
startTimer(1);
}
}, {once : true});
推荐阅读
- reactjs - React Router useHistory go功能无法正常工作
- python - 我无法运行任何命令 discord.py
- php - 通过魔术方法 Illuminate\Http\Request 对象 Laravel 访问的属性
- mysql - MYSQL 选择计数两个表左连接
- python - 检查某些值是否在 dict 中
- apache-kafka - KGroupedStream 与 cogroup、聚合和抑制
- javascript - 如果多个键具有相同的值,则按值排序 JavaScript 对象,然后按键(按字母顺序)。按顺序返回排序的键
- javascript - 我的 javascript 正在多次调用应该只被调用一次的函数
- ruby-on-rails - Ruby on Rails 如何为设计的注册创建操作添加功能?
- .net - 尝试使用 .Net PowerShell Runspace 连接到本地 Windows 10 计算机时,为什么会出现异常?