zoukankan      html  css  js  c++  java
  • Jquery 1.4.2 animate的BUG

    1 var d ={queue: false, duration: 500}
    2 $('body').animate( {} ,d);
    3 $('body').animate( {} ,d);
    4 console.log(d)
    5 return

    运行以上代码, firebug会报 too much recursion 错,

    原因是jquery speed中的(1.4.2 5696行)

     1 // Queueing
     2         opt.old = opt.complete;
     3         opt.complete = function() {
     4             if ( opt.queue !== false ) {
     5                 jQuery(this).dequeue();
     6             }
     7             if ( jQuery.isFunction( opt.old ) ) {
     8                 opt.old.call( this );
     9             }
    10         };

    他改变了anmate的options值(增加了complete),造了成isFunction的死循环,

    修正方法:

    1.改变jquery,删complete,(可能造成不可预知的错误),不推荐

    2.改变animate参数,不要以变量方式传入,或者每次重新赋值

    典型案例jQuery Masonry v2.0+  和jquery 1.4.2,开启动画时,会产生很多too much recursion, 修正方法:

    obj.$el[ styleFn ]( obj.style, animOpts );(214行)前加入animOpts.complete = false;

    或者 重新赋值;

  • 相关阅读:
    基于JavaMail开发邮件发送器工具类
    微服务架构
    图像识别
    Manacher
    左偏树
    虚树
    动态树(Link-Cut Tree)
    Splay
    扩展中国剩余定理(EXCRT)
    K-D树
  • 原文地址:https://www.cnblogs.com/wc1217/p/3025703.html
Copyright © 2011-2022 走看看