Qualcuno sa come stabilire se un oggetto jQuery memorizzato nella cache è diventato obsoleto, ad es. non è più nel DOM? Per esempio:controlla se l'oggetto jQuery memorizzato nella cache è ancora in DOM
var $cached_elem = $('.the_button');
// .. and then later
$cached_elem.text('updating...');
ho recentemente incontrato la situazione in cui il $ cached_elem viene rimosso dal DOM a causa di qualche altro evento. Quindi quello che vorrei fare:
if ($cache_elem.isStillInDOM()){
// now do time consuming stuff with $cached_elem in DOM
}
Prima che qualcuno propone, ho già impiegato questo, che è un analogo equo per quello che sto cercando di fare:
if ($cached_elem.is(':visible') === true){ ... }
Tuttavia, questo è non proprio la stessa cosa e potrebbe fallire in alcuni casi.
Quindi qualcuno può pensare a un modo semplice per controllare direttamente se un oggetto jQuery memorizzato nella cache è "obsoleto"? I può essere costretto a scrivere un plugin, se non ...
Ma cosa succede se, per esempio, rimuovo * parent * dell'elemento? Quello che devi fare penso sia quello di rilevare se 'body' è ancora uno dei genitori dell'elemento in questione, come questo: http://jsfiddle.net/D9L8M/1/ –
Good point - codice aggiornato per riflettere che –
'$ elem.closest ('body'). Length' dovrebbe essere un po 'più veloce. Puoi anche selezionare su "html" se stai rimuovendo, ad esempio, un elemento 'link' dal' head'. – lonesomeday