当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 相关文章推荐
javascript 避免闭包引发的问题
Mar 17 Javascript
JSON 和 JavaScript eval使用说明
Jun 13 Javascript
JS 面向对象之神奇的prototype
Feb 26 Javascript
Jquery Change与bind事件代码
Sep 29 Javascript
JQuery中操作Css样式的方法
Feb 12 Javascript
根据配置文件加载js依赖模块
Dec 29 Javascript
如何让你的JS代码更好看易读
Dec 01 Javascript
微信小程序switch组件使用详解
Jan 31 Javascript
JS实现的将html转为pdf功能【基于浏览器端插件jsPDF】
Feb 06 Javascript
jQuery实现的简单手风琴效果示例
Aug 29 jQuery
JS实现小星星特效
Dec 24 Javascript
Vue组件通信$attrs、$listeners实现原理解析
Sep 03 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
利用PHP扩展vld查看PHP opcode操作步骤
2013/03/04 PHP
PHP CURL 内存泄露问题解决方法
2015/02/12 PHP
php中注册器模式类用法实例分析
2015/11/03 PHP
前后台交互过程中json格式如何解析以及如何生成
2012/12/26 Javascript
页面载入结束自动调用js函数示例
2013/09/23 Javascript
JavaScript实现检查页面上的广告是否被AdBlock屏蔽了的方法
2014/11/03 Javascript
jquery渐隐渐显的图片幻灯闪烁切换实现方法
2015/02/26 Javascript
详解javascript高级定时器
2015/12/31 Javascript
15位和18位身份证JS校验的简单实例
2016/07/18 Javascript
关于javascript中限定时间内防止按钮重复点击的思路详解
2016/08/16 Javascript
NodeJS使用formidable实现文件上传
2016/10/27 NodeJs
Node.js 实现简单小说爬虫实例
2016/11/18 Javascript
Bootstrap CSS布局之表格
2016/12/17 Javascript
使用Promise链式调用解决多个异步回调的问题
2017/01/15 Javascript
JavaScript中三个等号和两个等号你了解多少
2017/07/04 Javascript
bootstrap Table的一些小操作
2017/11/01 Javascript
jquery.pager.js分页实现详解
2019/07/29 jQuery
Vue项目开发常见问题和解决方案总结
2020/09/11 Javascript
[02:17]《辉夜杯》TRG战队巡礼
2015/10/26 DOTA
实例讲解python函数式编程
2014/06/09 Python
python搭建虚拟环境的步骤详解
2016/09/27 Python
Python入门必须知道的11个知识点
2018/03/21 Python
详解Python odoo中嵌入html简单的分页功能
2019/05/29 Python
pytorch-神经网络拟合曲线实例
2020/01/15 Python
HTML5 Canvas鼠标与键盘事件demo示例
2013/07/04 HTML / CSS
深入剖析HTML5 内联框架iFrame
2016/05/04 HTML / CSS
阿迪达斯奥地利官方商城:adidas.at
2016/10/16 全球购物
学生的自我鉴定范文
2013/10/24 职场文书
施工人员岗位职责
2013/12/12 职场文书
请假条标准格式规范
2014/04/10 职场文书
学雷锋活动倡议书
2014/08/30 职场文书
群众路线剖析材料怎么写
2014/10/09 职场文书
留学推荐信怎么写
2015/03/26 职场文书
初中英语教师个人工作总结2015
2015/07/21 职场文书
2016年国培研修日志
2015/11/13 职场文书
利用JuiceFS使MySQL 备份验证性能提升 10 倍
2022/03/17 MySQL