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;

    或者 重新赋值;

  • 相关阅读:
    HDU 4268 multiset
    ACM-线段树
    HDU 5014 异或之和
    HDU 5012 骰子旋转(DFS)
    HDU 5011 NIM博弈
    HDU 5007 字符串匹配
    Android-Context
    Android-视图绘制
    Android-LayoutInflater
    oracle--分页过程demo1
  • 原文地址:https://www.cnblogs.com/wc1217/p/3025703.html
Copyright © 2011-2022 走看看