当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类和继承 prototype属性
Sep 03 Javascript
屏蔽网页右键复制和ctrl+c复制的js代码
Jan 04 Javascript
JQuery入门——移除绑定事件unbind方法概述及应用
Feb 05 Javascript
js生成缩略图后上传并利用canvas重绘
May 15 Javascript
javascript中$(function() {});写与不写有哪些区别
Aug 10 Javascript
JavaScript+html5 canvas绘制的圆弧荡秋千效果完整实例
Jan 26 Javascript
使用JS正则表达式 替换括号,尖括号等
Nov 29 Javascript
jQuery实现联动下拉列表查询框
Jan 04 Javascript
详解angularJs中自定义directive的数据交互
Jan 13 Javascript
简单实现js选项卡切换效果
Feb 09 Javascript
ES6/JavaScript使用技巧分享
Dec 14 Javascript
JavaScript数据结构与算法之二叉树遍历算法详解【先序、中序、后序】
Feb 21 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实现全角字符转为半角方法汇总
2015/07/09 PHP
php str_getcsv把字符串解析为数组的实现方法
2017/04/05 PHP
PHP+Mysql+Ajax实现淘宝客服或阿里旺旺聊天功能(前台页面)
2017/06/16 PHP
JavaScript TO HTML 转换
2006/06/26 Javascript
详解JavaScript函数绑定
2013/08/18 Javascript
Js 导出table内容到Excel的简单实例
2013/11/19 Javascript
Node.js开源应用框架HapiJS介绍
2015/01/14 Javascript
基于jQuery+Cookie实现的防止刷新的在线考试倒计时
2015/06/19 Javascript
基于vue的短信验证码倒计时demo
2017/09/13 Javascript
Node.js学习之TCP/IP数据通讯(实例讲解)
2017/10/11 Javascript
Vue SPA单页应用首屏优化实践
2018/06/28 Javascript
通过扫小程序码实现网站登陆功能
2019/08/22 Javascript
React中使用UMEditor的方法示例
2019/12/27 Javascript
vue实践---vue不依赖外部资源实现简单多语操作
2020/09/21 Javascript
[13:40]TI3青蛙君全程回顾 DOTA2我们为梦想再战
2013/09/13 DOTA
Python中使用platform模块获取系统信息的用法教程
2016/07/08 Python
Python列表和元组的定义与使用操作示例
2017/07/26 Python
Python cookbook(数据结构与算法)从字典中提取子集的方法示例
2018/03/22 Python
python实现简易内存监控
2018/06/21 Python
解决PyCharm同目录下导入模块会报错的问题
2018/10/13 Python
numpy np.newaxis 的实用分享
2019/11/30 Python
Django filter动态过滤与排序实现过程解析
2020/11/26 Python
CSS3旋转——彩色扇子兼容firefox浏览器
2013/06/04 HTML / CSS
P D PAOLA意大利官网:西班牙著名的珠宝首饰品牌
2019/09/24 全球购物
美国在线购买内衣网站:HerRoom
2020/02/22 全球购物
英国礼品和生活方式品牌:Treat Republic
2020/11/21 全球购物
加拿大户外探险购物网站:SAIL
2020/06/27 全球购物
教师自荐信
2013/12/10 职场文书
十佳标兵事迹材料
2014/08/18 职场文书
七一建党日演讲稿
2014/09/05 职场文书
2015年党风廉政建设工作总结
2015/04/09 职场文书
感谢信的技巧及范例
2019/05/15 职场文书
golang DNS服务器的简单实现操作
2021/04/30 Golang
python 办公自动化——基于pyqt5和openpyxl统计符合要求的名单
2021/05/25 Python
Golang的继承模拟实例
2021/06/30 Golang
Win11安全功能升级:内置防网络钓鱼功能
2022/04/08 数码科技