解决Js先触发失去焦点事件再执行点击事件的问题
作者:嗨皮田酱 时间:2024-04-22 12:50:33
最近在做公司的某个从项目,基本设计和淘宝登陆页类似:
1)文本框内容为空是,文本框右侧无清除按钮,当有内容时立即显示清除按钮;
2)当文本框失去焦点时,清除按钮消失,获取焦点时若文本框内有内容,则显示清除按钮,否则不显示;
3)文本框再有内容且获取焦点的情况下,点击清除按钮,文本框内容置空,且清除按钮消失。
随后想了想,感觉是个很简单的需求,只要结合使用keyup和blur以及click时间就可以解决了,然而,结果却不是我想要的,代码如下:
html代码:
<div class="input-group">
<input type="text" id="mobile" class="form-control" placeholder="请输入手机号" autocomplete="off" />
<div class="input-group-addon icon-clear"></div>
</div>
js代码:
//绑定监听手机号文本框内容按钮事件
$('#mobile').keyup(function() {
var clearBtn = $(this).parent().find('.icon-clear');
if($(this).val() == '') { clearBtn.hide(); }
else { clearBtn.css('display', 'table-cell'); }
});
//手机号输入框失去焦点,去除清除按钮;获取焦点时,若有值则显示清除按钮
$('#mobile').blur(function() {
$('#mobile').parent().find('.icon-clear').hide();
}).focus(function(){
if($(this).val() != ''){
$(this).parent().find('.icon-clear').css('display', 'table-cell');
}
});
//清除文本框内容事件
$('.icon-clear').click(function() {
$(this).parent().find('input').val('');
$(this).hide();
});
这样看着像是什么问题都没有的样子,其实不然,运行之后发现,在文本框中输入内容后文本框获取焦点,这个时候我想要去点击清除按钮来清除刚才我写的东西,发现,文本框内容没有置空,清除按钮却先消失了,很纳闷啊。
后来经查阅发现,是先执行的失去焦点事件,那么如何去解决呢?
而后,我在失去焦点事件中对其中的方法进行了延迟处理,如下所示:
//验证码输入框失去焦点,去除清除按钮;获取焦点时,若有值则显示清除按钮
$('#auth_code').blur(function() {
setTimeout(function() { //进行延时处理,时间单位为千分之一秒
$('#auth_code').parent().find('.icon-clear').hide();
}, 100)
}).focus(function(){
if($(this).val() != ''){
$(this).parent().find('.icon-clear').css('display', 'table-cell');
}
});
如此操作后就可以完美解决了,目前未发现任何副作用。
来源:https://blog.csdn.net/zttaiwx/article/details/53389884
标签:Js,焦点,点击
0
投稿
猜你喜欢
Django文件上传与下载(FileFlid)
2023-07-10 11:33:33
vue实现全选、反选功能
2024-04-09 10:58:43
将自己的数据集制作成TFRecord格式教程
2022-02-01 14:49:37
Spring + mybatis + mysql使用事物的几种方法总结
2024-01-22 02:01:25
python截取两个单词之间的内容方法
2022-06-02 01:48:46
JavaScript通过改变文字透明度实现的文字闪烁效果实例
2024-04-16 09:13:28
Python调用高德API实现批量地址转经纬度并写入表格的功能
2023-12-26 03:22:20
Go语言多值替换的HTML模板实例分析
2024-05-02 16:25:02
Pytorch mask-rcnn 实现细节分享
2021-10-20 01:31:38
Python 文件操作实现代码
2023-07-12 08:30:59
Python常见MongoDB数据库操作实例总结
2023-07-08 08:48:34
JavaScript 实现模态对话框 源代码大全
2023-08-22 20:32:24
python GUI库图形界面开发之PyQt5图片显示控件QPixmap详细使用方法与实例
2023-05-31 17:41:29
Go语言Zap日志库使用教程
2024-05-05 09:27:11
Python3 导入上级目录中的模块实例
2023-09-01 02:25:20
linux下安装python3和对应的pip环境教程详解
2023-03-17 09:48:15
浅析PyTorch中nn.Module的使用
2021-10-29 14:04:53
使用Python实现跳一跳自动跳跃功能
2023-04-07 01:57:55
详解如何用模块化的方式写vuejs
2024-04-27 16:08:04
Python实现将绝对URL替换成相对URL的方法
2023-08-28 13:40:08