2013-12-13 3 views
0

У меня проблема с выполнением функций последовательно. На мой HTML файл я получил это:JQuery выполняет функции последовательно

<body onload="start();"> 

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

Внутри моих JS я получил это, который должен выполнить изменение фона на черный, и когда это закончилось это сделало бы «добро пожаловать» появится деление с.

function start(){ 

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

} 

Задача: Выполняется только изменение фона. Я не вижу ошибок в консоли браузера.

Любые идеи о том, где я, возможно, ошибся?

EDIT: Я получил это на body CSS так, что она медленно меняется от белого до черного

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

Почему существует функция внутри '.css'? Я не вижу его [в документации] (http://api.jquery.com/css/). –

ответ

3

Где в documentation вы видите, что функция подписи? Этого не существует.

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

Разбить его, нет обратного вызова, который выполняется. Это не асинхронный шаг.

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

Вещь: как я могу изменить продолжительность изменения фона? –

+0

css() не является анимированным() – epascarello

0

Почему бы не обновить каждую функцию в одной строке?

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

Попробуйте это .. может быть полезно для вас.

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

JQuery CSS() не имеет обратного вызова - Я думаю, вы смешиваете его с «живой», который является медленным (поэтому задержка), что нужно сделать в то время как «CSS» происходит сразу.

Вы можете цепи JQuery команды, как это:

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

Это может быть сделано с чем-либо, что происходит немедленно. Обратные вызовы предназначены для правильного выбора времени, когда что-то требует времени.

Кроме того, для CSS, есть еще один способ:

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

Но это не очень вообще в JQuery. Цепочка (как и выше) будет работать почти везде.

Смежные вопросы