当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中each和js中forEach的区别分析

    jQuery中each和js中forEach的区别分析

    这篇文章主要介绍了jQuery中each和js中forEach的区别,结合实例形式较为详细的分析了jQuery中each和js中forEach针对数组与对象遍历的相关操作技巧与注意事项,需要的朋友可以参考下
    2019-02-02
  • 一个背景云变换js特效 鼠标移动背景云变化

    一个背景云变换js特效 鼠标移动背景云变化

    分享一个背景云变换js特效随着鼠标的移动,背景云会不断的变化位置和形状,感兴趣的朋友可以研究下
    2012-12-12
  • 基于jquery实现表格内容筛选功能实例解析

    基于jquery实现表格内容筛选功能实例解析

    对于表格来说,当数据比较多的时候,我们无法一页一页的查找,这样我们就可以进行筛选操作,这篇文章主要为大家详细介绍了基于jquery实现表格内容筛选功能的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-05-05
  • JQuery样式操作、click事件以及索引值-选项卡应用示例

    JQuery样式操作、click事件以及索引值-选项卡应用示例

    这篇文章主要介绍了JQuery样式操作、click事件以及索引值-选项卡应用,结合实例形式分析了jQuery动态修改css样式、事件响应以及选项卡相关操作技巧,需要的朋友可以参考下
    2019-05-05
  • jQuery插件Tooltipster实现漂亮的工具提示

    jQuery插件Tooltipster实现漂亮的工具提示

    Tooltipster是一个jQuery插件用于快速创建HTML5校验并且灵活的Tooltips。它可以通过CSS来改变外观,箭头的位置之后,鼠标,延迟/期间的外观都可以被定义。
    2015-04-04
  • 让人印象深刻的10个jQuery手风琴效果应用

    让人印象深刻的10个jQuery手风琴效果应用

    jQuery 是最流行的 JavaScript 开发框架,它简化了 HTML 文档遍历,事件处理,动画以及 Ajax 交互,帮助 Web 开发人员更快速的实现各种精美的界面效果
    2012-05-05
  • 全面解析jQuery $(document).ready()和JavaScript onload事件

    全面解析jQuery $(document).ready()和JavaScript onload事件

    这篇文章主要介绍了全面解析jQuery $(document).ready()和JavaScript onload事件的相关资料,非常不错具有参考借鉴价值,需要的朋友可以参考下
    2016-06-06
  • jQuery+jRange实现滑动选取数值范围特效

    jQuery+jRange实现滑动选取数值范围特效

    本文向大家介绍一款范围选择器插件jRange,它是基于jQuery的一款简单插件。本站之前有类似文章:jQuery+CSS使用滑块选取价格范围,其中不太好的地方是使用了jqueryui庞大的插件库,有兴趣的朋友可以看看。下面我们来看下插件jRange的使用。
    2015-03-03
  • jQuery插件Echarts实现的双轴图效果示例【附demo源码下载】

    jQuery插件Echarts实现的双轴图效果示例【附demo源码下载】

    这篇文章主要介绍了jQuery插件Echarts实现的双轴图效果,结合完整实例形式分析了Echarts插件制作双轴图效果的操作步骤与相关实现技巧,并附带demo源码供读者下载参考,需要的朋友可以参考下
    2017-03-03
  • jquery处理json数据实例分析

    jquery处理json数据实例分析

    json数据是一种经型的实时数据交互的数据存储方法,使用到最多的应该是ajax与json配合使用了,下面我来给大家介绍jquery处理json数据方法。
    2014-06-06

最新评论