Как выполнить код перед другим в jquery?

Я пытаюсь выполнить загрузку, прежде чем щелкнуть блок div. на самом деле код такой:

$("#bookmark").click(function() {
$("#page-loader").fadeIn("slow"); //should execute first

//my second code witch is hiding and showing some elements and takes about 5 sec to do
$(elements).hide() or show();
});

но когда пользователь нажимает, он сначала выполняет второй, а затем первый:/

я пробовал delay(), setTimeout... но ни один из них не работал :(

Редактировать: Сработало, ребята, спасибо всем. Вы знаете, я действительно новичок и не слишком много понимаю в этих документах :))

Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
1
0
38
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

Потому что fadeIn — это асинхронная операция. Выполните последующие операции в обратном вызове:

$("#page-loader").fadeIn("slow", function () {
    $(elements).hide()// or show();
});
Ответ принят как подходящий

Из документации: http://api.jquery.com/fadein/

Второй параметр функции fadeIn — это обратный вызов .fadeIn( [duration ] [, complete ] ), куда вы можете поместить код, который хотите выполнить после анимации.

$("#page-loader").fadeIn("slow", function() {
    $(elements).hide(); // or show();
});

Найдите http://api.jquery.com/fadein/

.fadeIn( [duration ] [, complete ] )

$("#bookmark").click(function() {
    $("#page-loader").fadeIn("slow", function complete() {
        $(elements).hide();
        //$(elements).show();
    });
});

Другие вопросы по теме