2010-08-17 14 views
2

我試圖展示我的產品的動畫用下面的代碼(jQuery的)Erorr而使用jQuery動畫「內存不足時行:13」

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中我得到「內存不足:13」 我該如何解決這個問題? 我使用1.4.2版

感謝

+0

一兩件事 - 動畫工作正常,在IE之外的錯誤信息 – junkqwe 2010-08-17 09:38:28

回答

0

內,您的方法,而不是使用$(".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瀏覽器將不會對這麼多的動畫同時滿意。

+0

我更換了$(「電棒」)與$(this)但我仍然得到相同的錯誤 – junkqwe 2010-08-17 10:04:28

+0

@junkqwe - 這些元素有多少? – 2010-08-17 10:11:35

1

發現問題。

這是

感謝了jQuery和jQuery.ui版本之間的可計算

+0

我有一個「內存不足:」在IE瀏覽器的問題只使用jQuery 1.3.2。我更新到1.4.2,問題就消失了。這是發生在你身上的事嗎? – MrBoJangles 2010-10-06 22:08:23