当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实现div的拖动并调整大小类似qq空间个性编辑模块
Dec 12 Javascript
web性能优化之javascript性能调优
Dec 28 Javascript
jQuery ajax dataType值为text json探索分享
Sep 23 Javascript
js实现键盘上下左右键选择文字并显示在文本框的方法
May 07 Javascript
提高jQuery性能优化的技巧
Aug 03 Javascript
jQuery简单实现仿京东商城的左侧菜单效果代码
Sep 09 Javascript
jquery ztree实现树的搜索功能
Feb 25 Javascript
vue.js表格分页示例
Oct 18 Javascript
bootstrap制作jsp页面(根据值让table显示选中)
Jan 05 Javascript
javascript基础知识之html5轮播图实例讲解(44)
Feb 17 Javascript
JS与CSS3实现图片响应鼠标移动放大效果示例
May 04 Javascript
jQuery 实现倒计时天,时,分,秒功能
Jul 31 jQuery
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快速统计某个数据库中每张表的数据量
2012/09/04 PHP
php实现的递归提成方案实例
2015/11/14 PHP
php经典算法集锦
2015/11/14 PHP
yii2-GridView在开发中常用的功能及技巧总结
2017/01/07 PHP
PHP 7.0新增加的特性介绍
2017/06/08 PHP
RGB颜色值转HTML十六进制(HEX)代码的JS函数
2009/04/25 Javascript
javaScript checkbox 全选/反选及批量删除
2010/04/28 Javascript
基于jQuery的message插件实现右下角弹出消息框
2011/01/11 Javascript
JavaScript实现DOM对象选择器
2016/09/24 Javascript
Vue.js系列之vue-router(上)(3)
2017/01/03 Javascript
angular2中router路由跳转navigate的使用与刷新页面问题详解
2017/05/07 Javascript
ES6使用Set数据结构实现数组的交集、并集、差集功能示例
2017/10/31 Javascript
使用vue自定义指令开发表单验证插件validate.js
2019/05/23 Javascript
layer.confirm点击第一个按钮关闭弹出框的方法
2019/09/09 Javascript
createObjectURL方法实现本地图片预览
2019/09/30 Javascript
vue利用全局导航守卫作登录后跳转到未登录前指定页面的实例代码
2020/05/19 Javascript
通过实例了解JS执行上下文运行原理
2020/06/17 Javascript
[42:32]完美世界DOTA2联赛循环赛 Magma vs PXG BO2第二场 10.28
2020/10/28 DOTA
python中 chr unichr ord函数的实例详解
2017/08/06 Python
解析Python中的eval()、exec()及其相关函数
2017/12/20 Python
浅析python打包工具distutils、setuptools
2018/04/20 Python
Django中STATIC_ROOT和STATIC_URL及STATICFILES_DIRS浅析
2018/05/08 Python
python使用正则表达式来获取文件名的前缀方法
2018/10/21 Python
python实现关闭第三方窗口的方法
2019/06/28 Python
Django框架ORM数据库操作实例详解
2019/11/07 Python
浅谈keras中的batch_dot,dot方法和TensorFlow的matmul
2020/06/18 Python
Python如何定义有可选参数的元类
2020/07/31 Python
html5页面结构_动力节点Java学院整理
2017/07/10 HTML / CSS
技术合作协议书范本
2014/04/18 职场文书
住宅使用说明书
2014/05/09 职场文书
谢师宴答谢词
2015/01/05 职场文书
《自己去吧》教学反思
2016/02/16 职场文书
浅谈MySQL之select优化方案
2021/08/07 MySQL
JavaScript获取URL参数的方法分享
2022/04/07 Javascript
ssh服务器拒绝了密码 请再试一次已解决(亲测有效)
2022/08/14 Servers
HTML页面点击按钮关闭页面的多种方式
2022/12/24 HTML / CSS