diff --git a/js/alert.js b/js/alert.js
index 516fe4ff582b0235e8e1665548529464dc10cdfe..2738145c280ff86972b0b6d1c82b862042ee788d 100644
--- a/js/alert.js
+++ b/js/alert.js
@@ -42,7 +42,8 @@
     $parent.removeClass('in')
 
     function removeElement() {
-      $parent.trigger('closed.bs.alert').remove()
+      // detach from parent, fire event then clean up data
+      $parent.detach().trigger('closed.bs.alert').remove()
     }
 
     $.support.transition && $parent.hasClass('fade') ?