当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 相关文章推荐
Prototype使用指南之range.js
Jan 10 Javascript
js跨域和ajax 跨域问题的实现思路
Sep 05 Javascript
js 火狐下取本地路径实现思路
Apr 02 Javascript
jquery ajaxSubmit 异步提交的简单实现
Feb 28 Javascript
用jQuery实现的智能隐藏、滑动效果的返回顶部代码
Mar 18 Javascript
JavaScript中String.prototype用法实例
May 20 Javascript
jquery动态切换背景图片的简单实现方法
May 14 Javascript
jQuery on()方法绑定动态元素的点击事件无响应的解决办法
Jul 07 Javascript
angular中实现控制器之间传递参数的方式
Apr 24 Javascript
vue项目中mock.js的使用及基本用法
May 22 Javascript
对Layer UI 模块化的用法详解
Sep 26 Javascript
js实现简单贪吃蛇游戏
May 15 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
解析VS2010利用VS.PHP插件调试PHP的方法
2013/07/19 PHP
PHP使用flock实现文件加锁的方法
2015/07/01 PHP
利用php-cli和任务计划实现刷新token功能的方法
2017/05/03 PHP
php生成条形码的图片的实例详解
2017/09/13 PHP
laravel 框架结合关联查询 when()用法分析
2019/11/22 PHP
QQ邮箱的一个文本编辑器代码
2007/03/14 Javascript
Javascript打印网页部分内容的脚本
2008/11/17 Javascript
Extjs学习笔记之六 面版
2010/01/08 Javascript
js写一个字符串转成驼峰的实例
2013/06/21 Javascript
用jquery写的菜单从左往右滑动出现
2014/04/11 Javascript
SuperSlide标签切换、焦点图多种组合插件
2015/03/14 Javascript
HTML5 Shiv完美解决IE(IE6/IE7/IE8)不兼容HTML5标签的方法
2015/11/25 Javascript
微信小程序 window_x64环境搭建
2016/09/30 Javascript
vue 添加vux的代码讲解
2017/11/30 Javascript
AngularJS2 与 D3.js集成实现自定义可视化的方法
2017/12/01 Javascript
基于VuePress 轻量级静态网站生成器的实现方法
2018/04/17 Javascript
通过jquery.cookie.js实现记住用户名、密码登录功能
2018/06/20 jQuery
支付宝小程序tabbar底部导航
2018/11/06 Javascript
vue+webpack dev本地调试全局样式引用失效的解决方案
2019/11/12 Javascript
python为tornado添加recaptcha验证码功能
2014/02/26 Python
BIBLOO捷克:购买女装、男装、童装、鞋和配件
2017/01/27 全球购物
美国指甲油品牌:Deco Miami
2017/01/30 全球购物
巴黎卡诗加拿大官网:Kérastase加拿大
2018/11/12 全球购物
Christys’ Hats官网:英国帽子制造商
2018/11/28 全球购物
美国糖果店:Sugarfina
2019/02/21 全球购物
石油大学毕业生自荐信
2014/01/28 职场文书
运动会广播稿150字
2014/02/19 职场文书
应届毕业生自荐信例文
2014/02/26 职场文书
乡镇消防工作实施方案
2014/03/27 职场文书
竞选班干部的演讲稿
2014/04/24 职场文书
文明家庭先进事迹材料
2014/05/14 职场文书
幼儿园母亲节活动总结
2015/02/10 职场文书
优秀团员自我评价
2015/03/10 职场文书
vue3中的组件间通信
2021/03/31 Vue.js
golang中实现给gif、png、jpeg图片添加文字水印
2021/04/26 Golang
MySQL通过binlog恢复数据
2021/05/27 MySQL