2012-09-28 17 views
39

Estaba navegando a través de la API jQuery y noté que load method está en la lista de desaprobados.load() método obsoleto?

Categorías: Desaprobado | Eventos> Documento Cargando

Normalmente uso este método para verificar si las imágenes están cargadas por completo. ¿Por qué está obsoleto? ¿Y qué se supone que debo usar en su lugar?

+0

Probablemente porque se confundía con '$ (document) .ready', que se ejecuta antes? – Blazemonger

+0

Hay una función onload nativa que funciona bien, ¿no es necesario que jQuery haga esto? – adeneo

+0

Está confundiendo la 'carga' [_method_] (http://api.jquery.com/load/) con' load' [_event_] (http://api.jquery.com/load-event/). Para verificar si las imágenes están cargadas, usa _event_. – Sparky

Respuesta

57

Ver bug #11733, que documenta esta desaprobación:

El método .load() es una firma ambiguo, que puede ser o bien una carga ajax o adjuntar/disparar un evento de "carga". CCAO no puede distinguirlos desde es una decisión dinámica basada en argumentos.

Para evitar ambigüedades relacionadas con la firma del método, ahora se recomienda utilizar on() en su lugar. Por ejemplo:

$("selector").load(function() { 
    // ... 
}); 

debe convertirse en:

$("selector").on("load", function() { 
    // ... 
}); 
+0

No realmente, 'on()' siempre fue pensado para ser usado así. Reemplaza 'bind()' así como 'delegate()' y 'live()'. Diría que la distinción (en términos de métodos de registro) entre eventos vinculados y delegados ha desaparecido desde que se introdujo 'on()'. –

-2

Si load no funciona como se esperaba, una alternativa es:

$(window).one("scroll", foo); 

O

$(window).one("scroll", function(){/*...*/}); 

Específicamente, desplazamiento víspera nt binding es útil en Android cuando DOMContentLoaded no funciona como se esperaba, e IE8 e inferior cuando onreadystatechange no funciona como se esperaba.

Referencias

+0

No es un reemplazo o una buena solución para la carga -_-, consulte: http://api.jquery.com/one/ –

+0

El enlace de eventos @ Al-Mothafar Scroll funciona en al menos algunas [plataformas] (http: // webreflection. blogspot.com/2009/10/android-dom-finger-events.html), [escenarios] (http://bugs.jquery.com/ticket/2614) y [navegadores] (http://javascript.info/ tutorial/onload-ondomcontentloaded # ie-lt-9-hack-for-a-document-not-inside-a-frame). –

+0

@ Al-Mothafar ¿Por qué esperas que la carga se dispare varias veces, haciendo que sea necesario? – NoBugs

1

función de carga DEPRC ado en jQuery alternativa de que es en el que se puede utilizar como

$("iframe").on("load",function() 
 
{ 
 
\t 
 
\t alert("on loaded iframe"); 
 
\t 
 
}); \t

este trabajo perfecto para jquery-3.1.1.