当jQuery1.7遇上focus方法的问题


Posted in Javascript onJanuary 26, 2014

jQuery中有一个focus()方法能设置对象的焦点,在1.7以下的版本中,不管对象是不是disabed状态,这个方法都不会报错(只是当disabled时,设置焦点的代码无效),但在1.7版本中,如果对象是disabled状态,这时调用focus()方法时,会直接报异常:

Error: Can't move focus to the control because it is invisible, not enabled, or of a type that does not accept the focus.

意思是:不可见或不可用的元素无法获取焦点。(特别提一下:IE9很NB,能自动识别这种情况,在IE9下不会报错,但是IE9以下的版本全挂。)

<!doctype html>
<html>
 <head>
 <title>测试</title>
 <script src="jquery-1.7.min.js" type="text/javascript"></script>
 <!--<script src="jquery-1.4.4.min.js" type="text/javascript"></script>-->
 <script type="text/javascript">
  function fnTest(){
   //try{
    $("#txt").focus();
   //}catch(e){}
  }  
 </script>
 </head>
 <body>
  <div>
   <input type="text" disabled="disabled" id="txt"/>
   <input type="text" id="txt2"/>
   <input type="button" value="Test" onclick="fnTest()"/>
  </div>
 </body>
</html>

虽然只是一个小变化,但是却很容易造成大杯具,特别是你的js代码,在focus()之后,还有其它很多事情要做时:)

建议:
如果一定要用最高版本的jQuery,最省事的办法莫过于在写xxx.focus()时,加一个try/catch,变成try{xxx.focus();}catch(e){}

Javascript 相关文章推荐
Extjs ajax同步请求时post方式参数发送方式
Aug 05 Javascript
JS 去除Array中的null值示例代码
Nov 20 Javascript
使用firebug进行调试javascript的示例
Dec 16 Javascript
javascript中的事件代理初探
Mar 08 Javascript
iframe子页面与父页面在同域或不同域下的js通信
May 07 Javascript
JS实现网站菜单拖拽移位效果的方法
Sep 24 Javascript
微信小程序 label 组件详解及简单实例
Jan 10 Javascript
Angular2 PrimeNG分页模块学习
Jan 14 Javascript
基于Vue2.0的分页组件
Mar 16 Javascript
js前端导出Excel的方法
Nov 01 Javascript
Angular4学习笔记router的简单使用
Mar 30 Javascript
Echarts实现多条折线可拖拽效果
Dec 19 Javascript
jQuery中delegate和on的用法与区别详细解析
Jan 26 #Javascript
使用javascript为网页增加夜间模式
Jan 26 #Javascript
jQuery:delegate中select()不起作用的解决方法(实例讲解)
Jan 26 #Javascript
javascript:FF/Chrome与IE动态加载元素的区别说明
Jan 26 #Javascript
js中的时间转换—毫秒转换成日期时间的示例代码
Jan 26 #Javascript
JS将所有对象s的属性复制给对象r(原生js+jquery)
Jan 25 #Javascript
手机平板等移动端适配跳转URL的js代码
Jan 25 #Javascript
You might like
Win2003服务器安全加固设置--进一步提高服务器安全性
2007/05/23 PHP
PHP file_exists问题杂谈
2012/05/07 PHP
IIS6.0中配置php服务全过程解析
2013/08/07 PHP
php网页版聊天软件实现代码
2016/08/12 PHP
PHP实现随机数字、字母的验证码功能
2018/08/01 PHP
THINKPHP-Apache服务器中使用Alias虚拟目录URL重写 隐藏index.php
2021/03/09 PHP
Div Select挡住的解决办法
2008/08/07 Javascript
javascript实现的基于金山词霸网络翻译的代码
2010/01/15 Javascript
Javascript动态绑定事件的简单实现代码
2010/12/25 Javascript
JS Jquery 遍历,筛选页面元素 自动完成(实现代码)
2013/07/08 Javascript
js 获取页面高度和宽度兼容 ie firefox chrome等
2014/05/14 Javascript
基于 Docker 开发 NodeJS 应用
2014/07/30 NodeJs
js获取input长度并根据页面宽度设置其大小及居中对齐
2014/08/22 Javascript
node.js中的buffer.Buffer.isBuffer方法使用说明
2014/12/14 Javascript
浅析上传头像示例及其注意事项
2016/12/14 Javascript
node.js中grunt和gulp的区别详解
2017/07/17 Javascript
Vue.js弹出模态框组件开发的示例代码
2017/07/26 Javascript
原生JS获取元素的位置与尺寸实现方法
2017/10/18 Javascript
基于vue cli重构多页面脚手架过程详解
2018/01/23 Javascript
Vue实现active点击切换方法
2018/03/16 Javascript
解决vue-router在同一个路由下切换,取不到变化的路由参数问题
2018/09/01 Javascript
分享一个vue项目“脚手架”项目的实现步骤
2019/05/26 Javascript
Vue的编码技巧与规范使用详解
2019/08/28 Javascript
python实现机器学习之元线性回归
2018/09/06 Python
django之自定义软删除Model的方法
2019/08/14 Python
在Django中预防CSRF攻击的操作
2020/03/13 Python
在Keras中实现保存和加载权重及模型结构
2020/06/15 Python
HTML5 的新的表单元素(datalist/keygen/output)使用介绍
2013/07/19 HTML / CSS
建筑院校毕业生求职信
2014/06/13 职场文书
关于读书的演讲稿400字
2014/08/27 职场文书
党员干部民主生活会议批评与自我批评材料
2014/09/20 职场文书
流动人口婚育证明范本
2014/09/26 职场文书
公司租房协议书范本
2014/10/08 职场文书
初中生300字旷课检讨书
2014/11/19 职场文书
学习弘扬焦裕禄精神心得体会
2016/01/23 职场文书
5人制售《绝地求生》游戏外挂获利500多万元 被判刑
2022/03/31 其他游戏