当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语法着色引擎(demo及打包文件下载)
Jun 13 Javascript
通过继承IHttpHandle实现JS插件的组织与管理
Jul 13 Javascript
JS 获取鼠标左右键的键值方法
Oct 11 Javascript
jQuery实现拖动调整表格单元格大小的代码实例
Jan 13 Javascript
ajax在兼容模式下失效的快速解决方法
Mar 22 Javascript
jQuery实现按钮点击遮罩加载及处理完后恢复的效果
Jun 07 Javascript
javascript实现抽奖程序的简单实例
Jun 07 Javascript
使用jquery获取url及url参数的简单实例
Jun 14 Javascript
js实现四舍五入完全保留两位小数的方法
Aug 02 Javascript
使用jquery/js获取iframe父子级、同级获取元素的方法
Aug 05 Javascript
详解Vue2.5+迁移至Typescript指南
Aug 01 Javascript
js实现烟花特效
Mar 02 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
phpmailer在服务器上不能正常发送邮件的解决办法
2014/07/08 PHP
phpQuery让php处理html代码像jQuery一样方便
2015/01/06 PHP
JavaScript使用prototype定义对象类型(转)[
2006/12/22 Javascript
JQuery打造PHP的AJAX表单提交实例
2009/11/03 Javascript
Confirmer JQuery确认对话框组件
2010/06/09 Javascript
window.location.hash 使用说明
2010/11/08 Javascript
javascript匿名函数应用示例介绍
2014/03/07 Javascript
javascript中的nextSibling使用陷(da)阱(keng)
2014/05/05 Javascript
javascript判断并获取注册表中可信任站点的方法
2015/06/01 Javascript
提高jQuery性能优化的技巧
2015/08/03 Javascript
以jQuery中$.Deferred对象为例讲解promise对象是如何处理异步问题
2015/11/13 Javascript
老生常谈遮罩层 滚动条的问题
2016/04/29 Javascript
jQuery Mobile中的button按钮组件基础使用教程
2016/05/23 Javascript
移动端滑动插件Swipe教程
2016/10/16 Javascript
bootstrapfileinput实现文件自动上传
2016/11/08 Javascript
Vuejs仿网易云音乐实现听歌及搜索功能
2017/03/30 Javascript
bootstrap select插件封装成Vue2.0组件
2017/04/17 Javascript
AngularJS使用ng-class动态增减class样式的方法示例
2017/05/18 Javascript
微信小程序实现图片预览功能
2018/01/31 Javascript
javascript标准库(js的标准内置对象)总结
2018/05/26 Javascript
微信小程序使用swiper组件实现类3D轮播图
2018/08/29 Javascript
浅谈Fetch 数据交互方式
2018/12/20 Javascript
跟老齐学Python之传说中的函数编写条规
2014/10/11 Python
分享一下如何编写高效且优雅的 Python 代码
2017/09/07 Python
Python2中文处理纪要的实现方法
2018/03/10 Python
python基于json文件实现的gearman任务自动重启代码实例
2019/08/13 Python
Django认证系统user对象实现过程解析
2020/03/02 Python
python中threading开启关闭线程操作
2020/05/02 Python
Python3爬虫RedisDump的安装步骤
2021/02/20 Python
俄罗斯领先的移动和数字设备在线商店:Svyaznoy.ru
2020/12/21 全球购物
小学生综合素质评语
2014/04/23 职场文书
本科毕业生自荐信
2014/05/26 职场文书
销售竞赛活动方案
2014/08/23 职场文书
房屋租赁授权委托书范本
2014/09/20 职场文书
四风问题自我剖析材料
2014/10/07 职场文书
政协委员个人总结
2015/03/03 职场文书