Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么';这个jQuery在将文本变为蓝色之前是否将其更改为红色?_Jquery - Fatal编程技术网

为什么';这个jQuery在将文本变为蓝色之前是否将其更改为红色?

为什么';这个jQuery在将文本变为蓝色之前是否将其更改为红色?,jquery,Jquery,我有一个jquery,当我的页面的一部分被点击时会被触发 $('#my_link').css("color", "red").delay(500).fadeOut(500).css("color", "blue").fadeIn(500) 我可以看到大多数的动画都像淡出和淡出一样发生,但我从来没有看到文本变成红色。我只看到它变成蓝色。知道为什么吗?应该是这样的: $('#my_link').css("color", "red").delay(500).fadeOut(500, function

我有一个jquery,当我的页面的一部分被点击时会被触发

$('#my_link').css("color", "red").delay(500).fadeOut(500).css("color", "blue").fadeIn(500)
我可以看到大多数的动画都像淡出和淡出一样发生,但我从来没有看到文本变成红色。我只看到它变成蓝色。知道为什么吗?

应该是这样的:

$('#my_link').css("color", "red").delay(500).fadeOut(500, function(){
   $(this).css("color", "blue").fadeIn(500);
});

希望这有帮助。Cheers

执行函数的顺序将是

css red --> css blue --> fadeOut --> delay --> fadeIn

.delay()
方法允许我们延迟队列中跟随它的函数的执行。 这不会延迟不使用效果队列的
.show()
.hide()
的无参数形式


简而言之,
.delay()
不会延迟不使用jQuery的
css()

我相信下面的方法会奏效。据我所知,jQuery链接不会将属性与动画效果链接起来。我可能错了。通过使用淡出上的回调,您可以创建所需的效果

$('#my_link').css({ color : 'red' }).delay(500).fadeOut(500, function()
{
    $('#my_link').css({ color : 'blue' }).fadeIn(500);
});

也许值得把他作为答案。他使用回调(参见函数()调用作为淡出的第二个参数)来确保颜色只有在淡出之后才会变为蓝色。jquery中的链接功能非常强大,但是会产生一些不必要的副作用,因为函数按顺序运行,而不必等待完成后再进行下一步。在这个例子中,回调函数是您的朋友,您会发现它在很多地方都有使用。