Mam skrypt jquery, który muszę uruchomić tylko wtedy, gdy wszystko inne na stronie, w tym kilka innych skryptów javascrip (nad którymi nie mam kontroli), zakończyło swoje działanie.
Pomyślałem, że być może istnieje alternatywa dla $ (document) .ready, ale nie udało mi się jej znaleźć.
javascript
jquery
dom
krzyżmo
źródło
źródło
$(window).on('load', function() { });
ponieważ $ (window) .load () jest przestarzałe.Ten blok kodu rozwiązuje mój problem,
źródło
Wiele
$(document).ready()
zostanie uruchomionych w kolejności z góry na dół na stronie. Ostatni$(document).ready()
zostanie uruchomiony jako ostatni na stronie. W ostatnim$(document).ready()
możesz wywołać nowe zdarzenie niestandardowe, które zostanie uruchomione po wszystkich innych.Opakuj swój kod w procedurę obsługi zdarzeń dla nowego zdarzenia niestandardowego.
źródło
Od tutaj :
Będzie to czekać, aż jQuery zostanie załadowane, aby go użyć, ale możesz użyć tej samej koncepcji, ustawiając zmienne w innych skryptach (lub sprawdzając je, jeśli nie są one Twoim skryptem), aby poczekać, aż zostaną załadowane, aby ich użyć.
Na przykład w mojej witrynie używam tego do asynchronicznego ładowania JS i czekania, aż skończą, zanim zrobię cokolwiek z nimi za pomocą jQuery:
źródło
Okazuje się, że ze względu na osobliwą mieszankę frameworków javascript, których potrzebowałem do zainicjowania skryptu za pomocą nasłuchiwania zdarzeń dostarczonego przez jeden z innych frameworków.
źródło
Czy próbowałeś załadować wszystkie funkcje inicjalizacyjne przy użyciu
$().ready
funkcji jQuery, którą chciałeś ostatnio?Być może możesz użyć
setTimeout()
na$().ready
funkcji, którą chciał uruchomić, wywołując funkcjonalność chciał obciążeniem.Lub użyj
setInterval()
i sprawdź interwał, aby zobaczyć, czy wszystkie inne funkcje ładowania zostały zakończone (zapisz status w zmiennej boolowskiej). Po spełnieniu warunków można anulować interwał i uruchomić funkcję ładowania.źródło
$(window).load(function(){...})