javascript - 检查我的输入框是否被点击或者是'焦点'纯js
问题描述
我需要知道是否单击了我的输入框,以便我可以触发脚本来执行某些操作,但我尝试的所有路由似乎都没有执行任何操作。
基本输入框
<input type="text" id="search-stuff" placeholder="search"/>
Javascript
var inputBox = document.getElementById("search-stuff");
if (inputBox) {
inputBox.addEventListener('keyup',function () {
startSearch();
})
inputBox.addEventListener('onfocus',function() {
console.log('we clicked');
searchBoxClicked();
})
}
function searchBoxClicked() { console.log('we clicked it'); }
我需要知道用户是否单击,以便在用户键入内容之前清除先前元素上的一些类。
解决方案
你几乎做对了。几个小错误:
- 听
focus
事件。onfocus
不是一个事件。 - 该
keyup
事件用于在释放键盘按钮时(在keydown
事件之后)进行侦听。如果你想听鼠标点击,使用click
事件。
var inputBox = document.getElementById("search-stuff");
if (inputBox) {
inputBox.addEventListener('click', function() {
startSearch();
});
inputBox.addEventListener('focus', function() {
searchBoxClicked();
});
}
function searchBoxClicked() {
console.log('focus');
}
function startSearch() {
console.log('click');
}
<input type="text" id="search-stuff" placeholder="search" />
推荐阅读
- azure-devops - 如何在 Azure 生成验证中获取源分支名称
- sql - T-SQL:如何返回基于排除表排除值的结果集
- mysql - 如何使用 MySQL 8.0.17 版本合并两个不同表的所有行?
- c - 保存C文件时如何防止VSCode将制表符转换为空格?
- javascript - 如何解决 vuetify 扩展面板的问题?
- javascript - React chakra ui 画布宽度和高度初始化为零并且无法渲染?
- ios - 如何使用委托/协议在 3 个视图之间传递(传递到根视图)
- nginx - Lua 脚本 proxy_pass 不能按预期工作
- apache-flink - AWS Flink (KDA) Rocks 数据库检查点的大小正在增加并且永远不会下降
- batch-file - 为每个 /dir 结果分配数字并要求输入数字