Ошибка при использовании jquery animate "Недостаточно памяти в строке: 13" - PullRequest
2 голосов
/ 17 августа 2010

Я пытаюсь отобразить анимацию своих продуктов с помощью следующего кода (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 я получаю "Недостаточно памяти в строке: 13" Как я могупочини это?Я использую версию 1.4.2

Ответы [ 2 ]

1 голос
/ 17 августа 2010

Обнаружена проблема.

Это была вычислимость между версиями jQuery и jQuery.ui

Спасибо

0 голосов
/ 17 августа 2010

Внутри вашего метода вместо использования $(".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 не будет слишком доволен одновременным появлением множества анимаций.

...