当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 相关文章推荐
JS获取scrollHeight问题想到的标准问题
May 27 Javascript
iframe 自适应高度[在IE6 IE7 FF下测试通过]
Apr 13 Javascript
js+css使DIV始终居于屏幕中间 左下 左上 右上 右下的代码集合
Mar 10 Javascript
js自定义事件及事件交互原理概述(一)
Feb 01 Javascript
控制台报错object is not a function的解决方法
Aug 24 Javascript
jQuery使用fadein方法实现渐出效果实例
Mar 27 Javascript
每天一篇javascript学习小结(面向对象编程)
Nov 20 Javascript
JS动态添加选项案例分析
Oct 17 Javascript
浅谈javascript中的数据类型转换
Dec 27 Javascript
jQuery上传插件webupload使用方法
Aug 01 jQuery
在vue中使用公共过滤器filter的方法
Jun 26 Javascript
vue 使用vue-i18n做全局中英文切换的方法
Oct 29 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邮件类
2007/01/03 PHP
PHP读取配置文件类实例(可读取ini,yaml,xml等)
2015/07/28 PHP
php实现通过soap调用.Net的WebService asmx文件
2017/02/27 PHP
Laravel中使用Queue的最基本操作教程
2017/12/27 PHP
Javascript hasOwnProperty 方法 &amp; in 关键字
2008/11/26 Javascript
JavaScript 精粹读书笔记(1,2)
2010/02/07 Javascript
jQuery判断复选框是否勾选的原理及示例
2014/05/21 Javascript
javascript实现锁定网页、密码解锁效果(类似系统屏幕保护效果)
2014/08/15 Javascript
Node.js中的缓冲与流模块详细介绍
2015/02/11 Javascript
基于javascript实现全屏漂浮广告
2016/03/31 Javascript
bootstrap datepicker 与bootstrapValidator同时使用时选择日期后无法正常触发校验的解决思路
2016/09/28 Javascript
JavaScript实现页面无操作倒计时退出
2016/10/22 Javascript
jQuery 如何实现一个滑动按钮开关
2016/12/01 Javascript
js倒计时显示实例
2016/12/11 Javascript
jquery 实现拖动文件上传加载进度条功能
2018/03/18 jQuery
vue项目base64字符串转图片的实现代码
2018/07/13 Javascript
node实现爬虫的几种简易方式
2019/08/22 Javascript
小程序富文本提取图片可放大缩小
2020/05/26 Javascript
Openlayers实现测量功能
2020/09/25 Javascript
python使用smtplib模块通过gmail实现邮件发送的方法
2015/05/08 Python
Python编程生成随机用户名及密码的方法示例
2017/05/05 Python
Python内建模块struct实例详解
2018/02/02 Python
python opencv检测目标颜色的实例讲解
2018/04/02 Python
Python批处理更改文件名os.rename的方法
2018/10/26 Python
我用Python抓取了7000 多本电子书案例详解
2019/03/25 Python
Python Pandas 获取列匹配特定值的行的索引问题
2019/07/01 Python
简单了解django缓存方式及配置
2019/07/19 Python
基于python2.7实现图形密码生成器的实例代码
2019/11/05 Python
python 制作网站筛选工具(附源码)
2021/01/21 Python
阿联酋手表和配饰购物网站:Rivolishop
2019/11/25 全球购物
项目施工员岗位职责
2014/03/09 职场文书
员工趣味活动方案
2014/08/27 职场文书
三傻大闹宝莱坞观后感
2015/06/03 职场文书
革命电影观后感
2015/06/18 职场文书
2015年教师节感言
2015/08/03 职场文书
新员工入职感言范文!
2019/07/04 职场文书