setTimeout for css没有运行

时间:2012-11-22 23:52:34

标签: javascript jquery settimeout

我已经将setTimeout添加到了几个函数中,其中一个正常运行,但在另一个函数中它似乎根本没有运行。我不知道为什么,因为它完全一样。请在下面找到我的代码,任何帮助将不胜感激。

这是我正在看的setTimeout行。这个工作正常。

var fctyhov = function (z) {
    $(deptmts[i]).hover(
        function(){
            $(fcultys[z]).stop(true).animate({color: col1});
            setTimeout(function(){$(z).css("text-shadow", tsh1);},100);},
        function(){
            $(fcultys[z]).stop(true).animate({color: col3});
            setTimeout(function(){$(z).css("text-shadow", tsh2);},100);}
    );
};

但这个不是

var facdth = function (y,x,w) {
    $(y).hover(
        function(){
            $(x).stop(true).fadeTo("fast", 1);
            $(w).stop(true).delay().animate({color:col1});
            $(y).stop(true).animate({color: col1});
            setTimeout(function(){$(y).css("text-shadow", tsh1);},100);},
        function(){
            $(x).stop(true).fadeTo("slow", 0);
            $(w).stop(true).delay().animate({color:col2});
            $(y).stop(true).animate({color: col3});
            setTimeout(function(){$(y).css("text-shadow", tsh2);},100);}
    );
};

修改 我添加了一个允许.animate({color})工作的插件。这些线路工作正常。

1 个答案:

答案 0 :(得分:2)

感谢您的上述评论和帮助。在我不累的早晨再看一遍,它变得更加清晰。我遇到的问题出现在第一个声明中,我认为它正在发挥作用。

我在$(z).css函数中调用setTimout的位置应该是$(fcultys[z]).css。这是一个愚蠢的错误,请参阅下面的工作代码。

var fctyhov = function (z) {
    $(deptmts[i]).hover(
        function(){
            $(fcultys[z]).stop(true).animate({color: col1});
            setTimeout(function(){$(fcultys[z]).css("text-shadow", tsh1);},100);},
        function(){
            $(fcultys[z]).stop(true).animate({color: col3});
            setTimeout(function(){$(fcultys[z]).css("text-shadow", tsh2);},100);}
    );
};