• 发现并认为这是jQuery1.4.4的一个Bug


    说起来还觉得丢人,公司的系统开发了两年,目前jquery的版本还是用的1.4.4。

    mantis上的Bug一堆,今天在改bug的时候发现一个jQuery的Bug。

    改bug嘛,一开始总是各种调试,总感觉怪怪的。经过各种分析和猜想后,最后问题归结到jquery.data函数。于是做了个实验。
    先写了一个简单的页面:

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
    
    <html>
    
    <head>
    
        <script type="text/javascript" src="jquery-1.4.4.min.js"></script>
    
        <script type="text/javascript">
    
        $(function(){
    
            $("#box").text("hello jquery");
    
        });
    
        </script>
    
    </head>
    
    <body>
    
        <div id="box"></div>
    
    </body>
    
    </html>

    接着我在控制台执行:

    结果却返回了一个function。
    但执行:

    返回undefined。

    然后又是各种猜想和测试,发现执行jquery的内部函数名称的参数时,这些内部函数名都会返回函数体。

    $.data($("abc"),"css")
    $.data($("abc"),"data")
    $.data($("abc"),"text")

    我觉得这是个jQuery1.4.4的bug。所以我又试了下最新版本的jQuery1.10.2 。
    在最新版本下,返回的就都是undefined了。即我所认为的正常返回结果。

    接着我建议升级jQuery的版本,但经理说,升级会有风险,因为有些接口在高版本里用法改掉了。
    没办法,确实有这问题。但早干嘛了。目前只能先尽量避免使用这些特殊的名称了。1.4.4应该还存有很多Bug。这次只需要改掉几个命名就行了。但下次还不知道有怎样的奇葩问题。

  • 相关阅读:
    让我们来学学css3 media queries的使用吧
    Emmet(zen coding)文档(一)[译文]
    给自己不同网站的密码加密
    Photoshop图层混合模式原理(公式)
    3dsmax设置贴图路径为相对目录
    ImageMagick
    FireBreak框架: 用C++打造多浏览器支持的插件
    粒子滤波算法
    页端3d技术
    RANSAC算法
  • 原文地址:https://www.cnblogs.com/shijiaqi1066/p/3441510.html
Copyright © 2020-2023  润新知