为什么';这个jQuery在将文本变为蓝色之前是否将其更改为红色?
我有一个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
$('#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中的链接功能非常强大,但是会产生一些不必要的副作用,因为函数按顺序运行,而不必等待完成后再进行下一步。在这个例子中,回调函数是您的朋友,您会发现它在很多地方都有使用。