JQuery выполняет функции последовательно

0

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

<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;
Теги:

4 ответа

3
Лучший ответ

Где в документации вы видите эту подпись функции? Этого не существует.

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

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

$('body').css('background', 'black');
$('#welcome').fadeIn("slow");
  • 0
    Дело в том, как я могу изменить продолжительность смены фона?
  • 0
    css () не является анимацией ()
0

jQuery css() не имеет обратного вызова - я думаю, вы путаете его с "анимацией", которая является медленной (поэтому замедленной), что нужно делать, пока "css" происходит немедленно.

Вы можете использовать команды jQuery следующим образом:

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

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

Кроме того, для css существует другой способ:

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

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

0

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

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

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

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

Ещё вопросы

Сообщество Overcoder
Наверх
Меню