Mam funkcję z dwoma liniami i chcę, aby były wykonywane w kolejności. Funkcja:Wykonaj 2 funkcje JavaScript w celu
showNotification(message){
$("#notificationMessageBody").html(message); // line1
$("#notificationModal").modal('show'); //line2
}
Tak więc, gdy zadzwonię showNotification("Hello World!")
jak mogę zapewnić line1
jest wykonywany przed line2
(czyli zawartość ładowanie odbywa się przed modalnych wyzwalaczy) Zasadniczo, staram się wypełnić moje wiadomości w modalnym ciało, a następnie pokaż je, a nie przed napełnieniem.
--EDIT--
funkcje są rzeczywiście wykonujący jeden po drugim, ale moi modalne wyskakuje przed jQuery ładuje mój message
do mojego #notificationMessageBody
W rezultacie, na przykład: Jeśli zadzwonię showNotification("Hello")
Dostaję modal z "Hello" (układ modałów i rzeczy jest zrobione), ale potem, jeśli zadzwonię pod numer showNotification("World")
, modal pojawi się z "Hello", a potem zmieni się na "World".
Uwaga: "Cześć" i "Świat" to duże śmieci tekstu, więc ładowanie tego do mojego DIV musi trochę potrwać, jak sądzę. Pomimo tego, że są wykonywane jeden po drugim, wydaje się (do pospolitego), że po pierwsze mod jest popping, a następnie wymiana jest wykonywana. Mam nadzieję, że teraz obraz jest trochę jasny.
Brak AJAX w dowolnym miejscu w pobliżu tej funkcji. Zasadniczo jest to moja własna funkcja alertu(), którą można powiedzieć. Modal z właściwym ID jest na mojej stronie. Zmieniam treść ciała modalnego (z funkcją jQuery na .html()
) i uruchamiam modal, aby pokazać, jak widać z kodu.
użyć 'setTimeout'. 'firstStatement; setTimeout (function() {secondStatment;}, 0); ' – Tushar
Te metody są synchroniczne, więc jeśli nie działa poprawnie, to masz błędną diagnozę problemu. Czy modal nie ma prawidłowej zawartości, kiedy się otwiera? – JJJ
Przedstaw demo pokazujące, że nie są wykonywane w kolejności. To brzmi jak problem XY. Pokaż również, jak nazywasz tę funkcję. Jeśli jest to związane z żądaniem ajaxowym, problem prawdopodobnie leży w sposobie jego nazwania. – charlietfl