IE8 jq focus BUG

本文探讨了jq的.focus()方法在IE8浏览器中存在的问题,并提供了两种解决方案。一种是在连续触发回车事件时加入延时,避免无缝连接触发;另一种是通过连续调用.focus()或结合.select()来解决部分场景下失效的问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

jq的 .focus() 在IE8下面会有一些意想不到的BUG,下面是解决办法;

一、我做的项目中有些场景需要用到键盘的回车作为触发事件,然后把focus移到其他功能或者按钮上面,刚刚好这个按钮或者功能也有绑定回车事件,那么结果就是从上一个地方按下回车键,焦点马上移动到下一个按钮或功能上,直接就触发了这个按钮的回车事件;可以理解为无缝切换,没有间隔,一下回车变焦点并触发了下一个焦点按钮上的回车事件,但是这并不是我想要的结果,所以我们可以在上一个回车事件做一个延时,让他们不能无缝连接起来触发;下面是代码:

setTimeout(function () {
    $('.my-thing').focus();
}, 100);

 

二、有些场景直接用$(elm).focus() ,其他浏览器正常,偏偏IE8无效;可以这样解决:

$(elm).focus().focus();
或者
$(elm).focus().select();

 

转载于:https://www.cnblogs.com/3box/p/5803747.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值