У меня проблема с выполнением функций последовательно. В моем 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;
Где в документации вы видите эту подпись функции? Этого не существует.
.css( propertyName )
.css( propertyNames )
.css( propertyName, value)
.css( propertyName, function(index, value) )
.css( properties )
Разбейте его, нет обратного вызова, который выполняется. Это не асинхронный шаг.
$('body').css('background', 'black');
$('#welcome').fadeIn("slow");
jQuery css() не имеет обратного вызова - я думаю, вы путаете его с "анимацией", которая является медленной (поэтому замедленной), что нужно делать, пока "css" происходит немедленно.
Вы можете использовать команды jQuery следующим образом:
$(".stuff").css("background","black").css("color","red")
Это можно сделать с помощью всего, что происходит немедленно. Обратные вызовы предназначены для правильного выбора времени, когда что-то требует времени.
Кроме того, для css существует другой способ:
$(".stuff").css({
"background":"black",
"color":"red",
});
Но это не очень общее в jQuery. Цепочка (как и выше) будет работать почти везде.
Почему бы не обновить каждую функцию в одной строке?
function start() { // rename this..
$('body').css('background', 'black');
$('#welcome').fadeIn();
}
Попробуйте это.. может быть полезно для вас.
$('body').css('background', 'black');
$('#welcome').fadeIn("slow");
.css
есть функция? Я не вижу это нигде в документации .