我正在尝试使用以下代码(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版本
由于
答案 0 :(得分:1)
发现问题。
这是jQuery和jQuery.ui版本之间的可计算性
谢谢
答案 1 :(得分: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
个元素,因为每个其他新{{1}完成队列的每个.hide()
元素也是,它以指数方式复合动画)。随着所有幻灯片动画彼此之间以及每个元素的排队,IE将不会对这些动画一下子感到满意。