Tengo un script jquery que necesito ejecutar solo una vez que todo lo demás en la página, incluidos algunos otros javascripts (sobre los que no tengo control) hayan terminado de hacer lo suyo.
Pensé que tal vez hubiera una alternativa a $ (document) .ready pero no he podido encontrarla.
javascript
jquery
dom
aceite
fuente
fuente
$(window).on('load', function() { });
ya que $ (window) .load () está en desuso.Este bloque de código resuelve mi problema,
fuente
Varios
$(document).ready()
se dispararán en orden de arriba hacia abajo en la página. El último$(document).ready()
se disparará al final de la página. Dentro del último$(document).ready()
, puede activar un nuevo evento personalizado para que se active después de todos los demás.Envuelva su código en un controlador de eventos para el nuevo evento personalizado.
fuente
Desde aqui :
Esto esperará hasta que se cargue jQuery para usarlo, pero puede usar el mismo concepto, configurando variables en sus otros scripts (o verificándolos si no son su script) para esperar hasta que estén cargados para usarlos.
Por ejemplo, en mi sitio, utilizo esto para la carga asincrónica de JS y espero hasta que terminen antes de hacer algo con ellos usando jQuery:
fuente
Resulta que debido a una mezcla peculiar de marcos de JavaScript, necesitaba iniciar el script utilizando un detector de eventos proporcionado por uno de los otros marcos.
fuente
¿Ha intentado cargar todas las funciones de inicialización usando
$().ready
, ejecutando la última función jQuery que deseaba?Quizás pueda usar
setTimeout()
en la$().ready
función que desea ejecutar, llamando a la funcionalidad que desea cargar.O utilice
setInterval()
y haga que el intervalo compruebe si se han completado todas las demás funciones de carga (almacene el estado en una variable booleana). Cuando se cumplen las condiciones, puede cancelar el intervalo y ejecutar la función de carga.fuente
$(window).load(function(){...})