2011-08-08 2 views
1

Si j'ai un élément DOM qui est dynamiquement ajouté à la page, puis supprimé en utilisant $("#id").remove() de jQuery, est-il possible de configurer un rappel, donc quand l'élément est retiré, je peux exécuter une action personnalisée.Rappel de la suppression d'un élément de l'arborescence DOM?

je pensais de la méthode de singe ragréage remove() de jQuery, donc je peux vérifier l'identité de l'élément et si elle correspond à celui que je veux, exécuter le rappel, mais je ne suis pas sûr de la façon dont .

Y a-t-il de meilleurs moyens de le faire? Et comment puis-je le faire en utilisant monkey-patching?

(j'écris un script Greasemonkey, et je ne peux pas changer la mise en œuvre sous-jacente)

Répondre

3

Vous pouvez écouter DOMNodeRemoved événement, puis filtrer par votre élément requis.

$("body").bind("DOMNodeRemoved", function(e){ 

    if(e.target.id == "id") { 
    // do something 
    } 
}); 

Comme d'habitude, il y a une mise en garde IE uniquement, afin de vérifier ce poste: http://www.bennadel.com/blog/1623-Ask-Ben-Detecting-When-DOM-Elements-Have-Been-Removed-With-jQuery.htm

+0

'DOMNodeRemoved':. *" ** ** Obsolète Cette fonction a été supprimée du Web Bien que certains navigateurs Ne pas l'utiliser dans des projets anciens ou nouveaux.Les pages ou applications Web qui l'utilisent peuvent se casser à tout moment ... Utilisez [Mutation Observers] (https: // developer. mozilla.org/en-US/docs/Web/API/MutationObserver) à la place si possible. "* - Source: https://developer.mozilla.org/en-US/docs/Web/Guide/Events/Mutation_events – Pang

+0

@ Pang: Vous voulez améliorer la réponse en envoyant un exemple? – Mrchief

Questions connexes