Как разместить разные коды JQuery в одной строке?
Как я могу поместить это в одну строку?
$("#welcome").delay(100).fadeIn('slow').delay(100).$("#slogan").slideDown(1000);
Следующий код работает:
$("#welcome").delay(100).fadeIn('slow').delay(100);
но не если я помещу код слогана после этого.
6 ответов
Решение
Используйте функцию обратного вызова delay()
$("#welcome").delay(100).fadeIn('slow').delay(100, function(){
$("#slogan").slideDown(1000);
});
$.("#slogan") - это не метод, который вы можете связать после остальных методов... так что нет, это не сработает. Я думаю, что вы хотите использовать функцию обратного вызова, например, так:
$("#welcome").delay(100).fadeIn('slow').delay(100, function(){
$("#slogan").slideDown(1000);
});
Для этого вызовите slideDown для #slogan после окончания задержки на #welcome.
Добавив анонимную функцию после задержки следующим образом:
$("#welcome").delay(100).fadeIn('slow').delay(100, function() {$("#slogan").slideDown(1000) });
Все функции эффектов принимают необязательный аргумент обратного вызова:
$("#welcome").delay(100).fadeIn('slow', function() {$("#slogan").delay(100).slideDown(1000);});
Вы не можете добавить второй селектор, как это. Если #slogan является потомком #welcome, вы можете использовать
$("#welcome").delay(100).fadeIn('slow').delay(100).children("#slogan").slideDown(1000);
хоть.
Если лозунг является потомком приветствия, вы можете сделать:
$("#welcome").delay(100).fadeIn('slow').delay(100).find("#slogan").slideDown(1000);