javascript - HTML如何在单击另一个元素(例如按钮)后保持输入的焦点状态
问题描述
单击按钮后,我想保持对焦状态。保持状态意味着:
- 如果
<input/>
是焦点,点击按钮后保持焦点; - 如果
<input/>
之前没有聚焦,点击按钮后不要聚焦。
所以,点击后,由于当前的聚焦状态<input/>
总是'不聚焦',我想得到之前的聚焦状态<input/>
。
问题是blur
总是在click
事件之前调用。
我试过的:
// onclick event
this.$iptPassword.on('click', this.toggleShowPassword);
// callback
toggleShowPassword() {
console.log(this.$iptPassword.is(':focus')); // always return false
this.$iptPassword.attr('type', this.$iptPassword.attr('type') === 'password' ? 'text' : 'password');
}
解决方案
创建了一个有效的 Plnkr -切换输入类型 + 焦点状态
引入了 2 个变量——“inputWasFocused”和“clickWasOutsideOfScope”——使用这些变量,我可以保存最后一个输入状态(聚焦/不聚焦)——在实际的“模糊”事件之前
推荐阅读
- c++ - 在c ++中生成字符串映射到std :: list of pointers
- angular - 错误 TS2339:“主页”类型上不存在属性“路由器”
- javascript - Main.js 和 polyfills.js 编译不正确 - Angular/.Net Core 应用程序
- ansible - 当同一类别下有多个主机时如何只执行一次ansible ad-hoc命令
- javascript - 一个通道中同时连接的限制是多少?
- javascript - 在脚本标签之间使用 EJS
- android - 使用 Mockito.verify() 时,不只是检查是否在模拟对象上调用了该函数,而是调用来自真实对象的方法
- python - Airflow xcom_pull 不提供相同上游任务实例运行的数据,而是提供最新数据
- php - PHP 表单操作不起作用且未更新查询字符串
- python - 无法识别的令牌:“772762303ORDER”