Как разместить разные коды 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);
Другие вопросы по тегам