JQuery顺序执行函数

时间:2013-12-13 16:53:40

标签: javascript jquery html

我在顺序执行函数时遇到问题。 在我的html文件中,我有这个:

<body onload="start();">

    <div id="title"><div id="welcome">WELCOME</div></div>

在我的JS中,我有这个,它应该将背景更改为黑色,当它结束时,它会使“欢迎”div出现。

function start(){

    $('body').css('background', 'black', function() {
        $('#welcome').fadeIn("slow");
    });

}

问题是:只执行后台更改。我在浏览器控制台上没有错误。

关于我可能出错的地方的任何想法?

编辑:我在body css上有这个,所以慢慢地从白色变为黑色

-webkit-transition:all 1.0s ease;
    -moz-transition:all 1.0s ease;
    transition:all 1.0s ease;

4 个答案:

答案 0 :(得分:3)

你在documentation的哪个地方看到了这个功能签名?那不存在。

.css( propertyName )
.css( propertyNames )
.css( propertyName, value)
.css( propertyName, function(index, value) )
.css( properties )

分解,没有执行的回调。这不是一个异步步骤。

$('body').css('background', 'black');
$('#welcome').fadeIn("slow");

答案 1 :(得分:0)

为什么不在一行中更新每个功能?

function start() { // rename this..
  $('body').css('background', 'black');
  $('#welcome').fadeIn();
}

答案 2 :(得分:0)

试试这个..可能对你有帮助。

$('body').css('background', 'black');
$('#welcome').fadeIn("slow");

答案 3 :(得分:0)

jQuery css()没有回调 - 我认为你把它与“animate”混淆,这是一个缓慢的(因此是延迟的)要做的事情,而“css”立即发生。

你可以像这样链接jQuery命令:

$(".stuff").css("background","black").css("color","red")

这可以通过立即发生的任何事情来完成。当需要花时间时,回调是为了适当的时间安排。

另外,对于CSS,还有另一种方法:

$(".stuff").css({
    "background":"black",
    "color":"red",
});

但是这在jQuery中并不是很普遍。链接(如上所述)几乎可以在任何地方使用。