Eu tenho um script jquery que preciso executar apenas depois que tudo o mais na página, incluindo alguns outros javascripts (sobre os quais não tenho controle) terminaram de fazer seu trabalho.
Achei que talvez houvesse uma alternativa para $ (document). Já, mas não consegui encontrá-la.
javascript
jquery
dom
crisma
fonte
fonte
$(window).on('load', function() { });
porque $ (window) .load () está obsoleto.Este bloco de código resolve meu problema,
fonte
Vários
$(document).ready()
serão disparados em ordem de cima para baixo na página. O último$(document).ready()
será disparado por último na página. Dentro do último$(document).ready()
, você pode acionar um novo evento personalizado para disparar após todos os outros.Envolva seu código em um manipulador de eventos para o novo evento personalizado.
fonte
A partir daqui :
Isso irá esperar até que o jQuery seja carregado para usá-lo, mas você pode usar o mesmo conceito, definindo variáveis em seus outros scripts (ou verificando-as se não forem o seu script) para esperar até que sejam carregadas para usá-las.
Por exemplo, em meu site, eu uso isso para carregamento de JS assíncrono e esperando até que eles terminem antes de fazer qualquer coisa com eles usando jQuery:
fonte
Acontece que, devido a uma mistura peculiar de estruturas javascript, eu precisei iniciar o script usando um ouvinte de eventos fornecido por uma das outras estruturas.
fonte
Você tentou carregar todas as funções de inicialização usando o
$().ready
, executando a função jQuery que você queria por último?Talvez você possa usar
setTimeout()
na$().ready
função que deseja executar, chamando a funcionalidade que deseja carregar.Ou use
setInterval()
e faça com que o intervalo verifique se todas as outras funções de carregamento foram concluídas (armazene o status em uma variável booleana). Quando as condições forem atendidas, você pode cancelar o intervalo e executar a função de carregamento.fonte
$(window).load(function(){...})