首页 新闻 搜索 专区 学院

Jscript 代码有问题,谁来帮我看看。

0
[已解决问题] 解决于 2015-12-24 14:10
function AlertMailNum() {
    var colors = new Array("red", "orange", "yellow", "green", "cyan", "blue", "purple");
    var colorStartIndex = 0;
    setBreathLightOn(colors, colorStartIndex);
}
function setBreathLightOn(colors, colorIndex) {
    var mailNum = $("input[id$='MailNum']").val();
    if (mailNum > 0) {
        var mailMappingButton = $("[id$='MailMappingLinkButton']");
        colorIndex = colorIndex % 7;
        mailMappingButton.animate(
            { color: colors[colorIndex] },
            2000,
            "swing",
            setBreathLightOn(colors, colorIndex + 1));
    }
    else {
        var mailMappingButton = $("#Header_MailMappingLinkButton");
        mailMappingButton.removeAttr("style");
    }
}
问题补充:

SCRIPT28: Out of stack space
Tracking.js (243,5)

龙葛格的主页 龙葛格 | 小虾三级 | 园豆:712
提问于:2015-12-24 10:19
< >
分享
最佳答案
0

你这个递归操作会出现死循环了

奖励园豆:5
乐享程序员 | 小虾三级 |园豆:930 | 2015-12-24 13:47

是的,谢谢啦。今天上午脑子有点乱,这么明显居然没看出来

龙葛格 | 园豆:712 (小虾三级) | 2015-12-24 14:06
其他回答(1)
0
function setBreathLightOn(colors, colorIndex) {
    var mailNum = $("input[id$='MailNum']").val();
    if (mailNum > 0) {
        var mailMappingButton = $("[id$='MailMappingLinkButton']");
        colorIndex = colorIndex % 7;
        mailMappingButton.animate(
            { color: colors[colorIndex] },
            2000,
            "swing",
            function () {
                if (mailNum > 0) {
                    setBreathLightOn(colors, colorIndex + 1);
                }
                else
                {
                    mailMappingButton.removeAttr("style");
                }
            });
    }
}

使用递归时犯的低级错误。代码进入死循环了。应该有循环出口。

龙葛格 | 园豆:712 (小虾三级) | 2015-12-24 14:09
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册