¿Alguien sabe cómo saber si un objeto jQuery almacenado en caché se ha quedado obsoleto, p. ya no está en el DOM? Por ejemplo:comprueba si el objeto jquery almacenado en caché todavía está en DOM
var $cached_elem = $('.the_button');
// .. and then later
$cached_elem.text('updating...');
que he encontrado recientemente la situación en la que $ cached_elem se retira del DOM debido a algún otro evento. Así que lo que me gustaría hacer:
if ($cache_elem.isStillInDOM()){
// now do time consuming stuff with $cached_elem in DOM
}
Antes de que nadie ofrece, ya he empleado este, que es un análogo justo por lo que estoy tratando de hacer:
if ($cached_elem.is(':visible') === true){ ... }
Sin embargo, esto es no es realmente lo mismo y podría fallar en algunos casos.
Entonces, ¿alguien puede pensar en una forma sencilla de verificar directamente si un objeto jQuery almacenado en caché está "obsoleto"? I puede ser obligado a escribir un plugin si no ...
Pero, ¿qué sucede si, por ejemplo, elimino el * padre * del elemento? Lo que necesita hacer, creo, es detectar si 'body' sigue siendo uno de los elementos principales del elemento en cuestión, como este: http://jsfiddle.net/D9L8M/1/ –
Buen punto - código actualizado para reflejar que –
'$ elem.closest ('body'). Length' debe ser un poco más rápido. También puede seleccionar '' html' 'si quita, por ejemplo, un elemento 'link' del' head'. – lonesomeday