当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 面向对象 继承
May 13 Javascript
Javascript创建Silverlight Plugin以及自定义nonSilverlight和lowSilverlight样式
Jun 28 Javascript
json数据与字符串的相互转化示例
Sep 18 Javascript
javascript陷阱 一不小心你就中招了(字符运算)
Nov 10 Javascript
JS+CSS 制作的超级简单的下拉菜单附图
Nov 22 Javascript
jQueryUI DatePicker 添加时分秒
Jun 04 Javascript
jQuery文本框得到与失去焦点动态改变样式效果
Sep 08 Javascript
关于微信jssdk实现多图片上传的一点心得分享
Dec 13 Javascript
JavaScript中日常收集常见的10种错误(推荐)
Jan 08 Javascript
Angular 5.x 学习笔记之Router(路由)应用
Apr 08 Javascript
angular2实现统一的http请求头方法
Aug 13 Javascript
JS实现动态星空背景效果
Nov 01 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
修改Zend引擎实现PHP源码加密的原理及实践
2008/04/14 PHP
PHP添加图片水印、压缩、剪切的封装类
2015/08/17 PHP
Python中使用django form表单验证的方法
2017/01/16 PHP
javascript 字符 Escape,encodeURI,encodeURIComponent
2009/07/09 Javascript
jQuery的强大选择器小结
2009/12/27 Javascript
javascript学习笔记(十一) 正则表达式介绍
2012/06/20 Javascript
jquery五角星评分插件示例分享
2014/02/21 Javascript
JavaScript闭包实例讲解
2014/04/22 Javascript
JavaScript运动减速效果实例分析
2015/08/04 Javascript
获取阴历(农历)和当前日期的js代码
2016/02/15 Javascript
nodejs之get/post请求的几种方式小结
2017/07/26 NodeJs
vue组件编写之todolist组件实例详解
2018/01/22 Javascript
Vue 菜单栏点击切换单个class(高亮)的方法
2018/08/22 Javascript
你了解vue3.0响应式数据怎么实现吗
2019/06/07 Javascript
js之切换全屏和退出全屏实现代码实例
2019/09/09 Javascript
vue中keep-alive内置组件缓存的实例代码
2020/04/16 Javascript
JavaScript TAB栏切换效果的示例
2020/11/05 Javascript
[46:47]完美世界DOTA2联赛PWL S2 FTD vs Magma 第二场 11.20
2020/11/23 DOTA
python实现sublime3的less编译插件示例
2014/04/27 Python
使用C语言来扩展Python程序和Zope服务器的教程
2015/04/14 Python
matplotlib中legend位置调整解析
2017/12/19 Python
Python实现Kmeans聚类算法
2020/06/10 Python
使用Python 正则匹配两个特定字符之间的字符方法
2018/12/24 Python
基于python和flask实现http接口过程解析
2020/06/15 Python
使用python matploblib库绘制准确率,损失率折线图
2020/06/16 Python
Python应用实现双指数函数及拟合代码实例
2020/06/19 Python
使用python批量修改XML文件中图像的depth值
2020/07/22 Python
Python连接Mysql进行增删改查的示例代码
2020/08/03 Python
css3中仿放大镜效果的几种方式原理解析
2020/12/03 HTML / CSS
SmartBuyGlasses美国官网:太阳眼镜和眼镜
2017/08/20 全球购物
计算机开发个人求职信范文
2013/09/26 职场文书
任命书格式
2014/06/05 职场文书
环保宣传标语
2014/06/12 职场文书
写给女朋友的保证书
2015/05/09 职场文书
使用Vue3+Vant组件实现App搜索历史记录功能(示例代码)
2021/06/09 Vue.js
Spring Boot 底层原理基础深度解析
2022/04/03 Java/Android