javascript - unappend - remove class jquery
Anulando jQuery(). Load() (4)
La función .load()
de la biblioteca jQuery le permite cargar selectivamente elementos de otra página (sujeto a ciertas reglas). Me gustaría saber si es posible abortar el proceso de carga.
En nuestra aplicación, un usuario puede navegar por una lista de elementos. Pueden elegir hacer clic en un botón que carga y muestra información adicional sobre un elemento de otro documento (lo que puede llevar algo de tiempo). Si eligen un elemento diferente en la lista mientras todavía está ocurriendo un .load()
, me gustaría que se abortara la carga.
es posible? ¿Incluso vale la pena? ¿Algunas ideas?
Dan
La respuesta de Nick fue casi lo que necesitaba, pero no del todo. Estaba usando .load () para cargar solo una imagen de una página. Entonces, ampliando la respuesta de Nick ...
Así que en lugar de ...
$(''#myElement'').load(''mypage.htm #myImage'');
Ahora estoy usando ...
var xhr = $.ajax({
url: ''mypage.htm'',
success: function(data) {
$("#myElement").html($(data).find("#myImage"));
}
});
//if needed, abort the request later..
xhr.abort();
No puedes hacer esto .load()
con .load()
, ya que devuelve el objeto jQuery para el encadenamiento, pero si cambias a la llamada completa de $.ajax()
con .html()
puedes hacer esto:
var xhr = $.ajax({
url: ''mypage.htm'',
success: function(data) {
$("#myElement").html(data);
}
});
//if needed, abort the request later..
xhr.abort();
Esto utiliza el método .abort()
en el objeto XMLHttpRequest para abortar la carga.
Puedes hacer esto usando $.ajax() manualmente. XMLHttpRequest
un objeto XMLHttpRequest
, al que puede llamar abort
según sea necesario. En el controlador de éxito, puede usar .html()
$("#myElement").load("/mypage #mayImage", function(response, status, xhr) {
if (status == "error") {
xhr.abort();
}
});
Debería funcionar así ...
o en otro evento, envío una verificación en un campo largo, el usuario cambia el contenido, quiero detener la verificación anterior para volver a verificar:
xhr.abort();
$("#myElement").load("/mypage #mayImage", function(response, status, xhr) {
if (status == "error") {
xhr.abort();
}
});