【问题标题】:Error while using jquery animate "Out of memory at line: 13"使用 jquery 动画时出错“第 13 行内存不足”
【发布时间】:2011-03-30 21:22:15
【问题描述】:

我正在尝试使用以下代码 (jquery) 显示我的产品动画

var prodNum = <%=prodNum %>;
var i = 1;  
$.timer(5000, function(timer) {     
    $(".prods").hide("slide", { direction: "down" }, 500, function() { 
        $(".prods").html("<div class=\"prod\">" + $("#pr" + ((4*i) % prodNum)).html() + "</div>" + 
                        "<div class=\"prod\">" + $("#pr" + ((4*i + 1) % prodNum)).html() + "</div>" + 
                        "<div class=\"prod\">" + $("#pr" + ((4*i + 2) % prodNum)).html() + "</div>" + 
                        "<div class=\"prod\">" + $("#pr" + ((4*i + 3) % prodNum)).html() + "</div>");
        $(".prods").show("slide", { direction: "down" }, 500);
        i++;
     });


});

它在 firefox 上运行良好,但在 IE 中我得到“Out of memory at line: 13” 我怎样才能解决这个问题? 我使用的是 1.4.2 版

【问题讨论】:

  • 还有一件事 - 除了错误消息之外,动画在 IE 中运行良好

标签: javascript jquery jquery-ui jquery-animate


【解决方案1】:

找到问题了。

这是 jQuery 和 jQuery.ui 版本之间的可计算性

谢谢

【讨论】:

  • 我在 IE 中遇到了“行内存不足:”问题,仅使用 jquery 1.3.2。我更新到 1.4.2,问题就消失了。你就是这样吗?
【解决方案2】:

在你的方法内部而不是在方法内部使用$(".prods"),使用$(this),像这样:

var prodNum = <%=prodNum %>;
var i = 1;  
$.timer(5000, function(timer) {     
  $(".prods").hide("slide", { direction: "down" }, 500, function() { 
    $(this).html("<div class='prod'>" + $("#pr" + ((4*i) % prodNum)).html() + "</div>" + 
                 "<div class='prod'>" + $("#pr" + ((4*i + 1) % prodNum)).html() + "</div>" + 
                 "<div class='prod'>" + $("#pr" + ((4*i + 2) % prodNum)).html() + "</div>" + 
                 "<div class='prod'>" + $("#pr" + ((4*i + 3) % prodNum)).html() + "</div>")
           .show("slide", { direction: "down" }, 500);
    i++;
  });
});

当您使用 $(".prods") 时,它会以相互依赖的方式对每个元素进行动画处理(以及时间为 n 元素,因为每个完成队列的 .hide() 也会每其他个新的 .prod 元素排队,它呈指数级复合动画)。由于所有幻灯片动画都在彼此之间,并且每个元素都在排队,IE 不会对同时进行这么多动画感到满意。

【讨论】:

  • 我用 $(this) 替换了 $(".prods") 但我仍然得到同样的错误
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-05-15
  • 1970-01-01
  • 2016-10-10
  • 1970-01-01
  • 1970-01-01
  • 2022-01-04
  • 2018-04-17
相关资源
最近更新 更多