Il n'existe pas d'événement intégré pour la suppression des éléments, mais vous pouvez en créer un en simulant une extension de la méthode de suppression par défaut de jQuery. Notez que le callback doit être appelé avant la suppression effective de l'élément pour conserver la référence.
(function() {
var ev = new $.Event('remove'),
orig = $.fn.remove;
$.fn.remove = function() {
$(this).trigger(ev);
return orig.apply(this, arguments);
}
})();
$('#some-element').bind('remove', function() {
console.log('removed!');
// do pre-mortem stuff here
// 'this' is still a reference to the element, before removing it
});
// some other js code here [...]
$('#some-element').remove();
Note : certains problèmes liés à cette réponse ont été soulignés par d'autres posteurs.
- Cela ne fonctionnera pas si le nœud est supprimé par l'intermédiaire de la fonction
html()
replace()
ou d'autres méthodes jQuery
- Cet événement fait des bulles
- jQuery UI supprime également les surcharges.
La solution la plus élégante à ce problème semble être : https://stackoverflow.com/a/10172676/216941
1 votes
Par curiosité, que voulez-vous faire avec l'élément qui a été retiré ?
8 votes
J'ai un élément qui s'attache indépendamment à la pièce que j'enlève, donc je veux détecter quand cette pièce est partie pour éliminer cet élément aussi. Je pourrais revoir la conception de l'ensemble, mais l'accomplissement de ce qui précède me fera gagner beaucoup de temps (et de code).