当jQuery1.7遇上focus方法的问题

 更新时间:2014年01月26日 09:55:31   作者:  
如果一定要用最高版本的jQuery,最省事的办法莫过于在写xxx.focus()时,加一个try/catch,变成try{xxx.focus();}catch(e){}

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){}

相关文章

  • jQuery使用模式窗口实现在主页面和子页面中互相传值的方法

    jQuery使用模式窗口实现在主页面和子页面中互相传值的方法

    这篇文章主要介绍了jQuery使用模式窗口实现在主页面和子页面中互相传值的方法,涉及jQuery模式窗口及参数传递相关技巧,需要的朋友可以参考下
    2016-03-03
  • jquery操作iframe实现父页面和子页面相互操作的九种情况

    jquery操作iframe实现父页面和子页面相互操作的九种情况

    现实开发中难免会遇到子页面、父页面相互操作的情况,本文主要介绍了jquery操作iframe实现父页面和子页面相互操作的九种情况,具有一定的参考价值,感兴趣的可以了解一下
    2024-02-02
  • jQuery中json对象的复制方式介绍(数组及对象)

    jQuery中json对象的复制方式介绍(数组及对象)

    本文为大家介绍下jQuery中json对象的复制:jQuery自带的$.map方式、深复制与浅复制等等,感兴趣的朋友可以参考下哈,希望对大家有所帮助
    2013-06-06
  • jQuery选择器之子元素选择器详解

    jQuery选择器之子元素选择器详解

    这篇文章主要为大家详细介绍了jQuery选择器之子元素选择器,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-09-09
  • jQuery实现瀑布流的取巧做法分享

    jQuery实现瀑布流的取巧做法分享

    这篇文章主要介绍了jQuery实现瀑布流的取巧做法分享,需要的朋友可以参考下
    2015-01-01
  • 浅谈jQuery中ajaxPrefilter的应用

    浅谈jQuery中ajaxPrefilter的应用

    下面小编就为大家带来一篇浅谈jQuery中ajaxPrefilter的应用。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-08-08
  • jquery实现有过渡效果的tab切换

    jquery实现有过渡效果的tab切换

    这篇文章主要为大家详细介绍了jquery实现有过渡效果的tab切换,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-07-07
  • jquery ztree实现树的搜索功能

    jquery ztree实现树的搜索功能

    这篇文章主要为大家详细介绍了jquery ztree实现树的搜索功能,zTree是利用 JQuery 的核心代码,实现一套能完成大部分常用功能的Tree插件,对ztree感兴趣的小伙伴们可以参考一下
    2016-02-02
  • jquery选择器使用详解

    jquery选择器使用详解

    JQuery是一个很NB的js集成作品,以其简洁的语法和跨平台兼容性的优势,这里给大家介绍下JQuery中的选择器,不理解选择器或者用不好选择器,是不可能有一手很NB的JQuery技能的
    2014-04-04
  • 使用jQuery实现Web页面换肤功能的要点解析

    使用jQuery实现Web页面换肤功能的要点解析

    网页换肤的实质就是切换CSS样式,关键是给用户做出点击切换的功能以及换肤完成之后的缓存记录功能,下面我们就来看一下使用jQuery实现Web页面换肤功能的要点解析:
    2016-05-05

最新评论