diff --git a/js/tooltip.js b/js/tooltip.js
index 5192d38fcad244a8184828419c37d6c44924cfeb..1e10af27fee7bbd81621f37cbc22d111bb36a922 100644
--- a/js/tooltip.js
+++ b/js/tooltip.js
@@ -281,7 +281,7 @@
     $tip.removeClass('fade in top bottom left right')
   }
 
-  Tooltip.prototype.hide = function () {
+  Tooltip.prototype.hide = function (callback) {
     var that = this
     var $tip = this.tip()
     var e    = $.Event('hide.bs.' + this.type)
@@ -291,6 +291,7 @@
       that.$element
         .removeAttr('aria-describedby')
         .trigger('hidden.bs.' + that.type)
+      callback && callback()
     }
 
     this.$element.trigger(e)
@@ -438,8 +439,11 @@
   }
 
   Tooltip.prototype.destroy = function () {
+    var that = this
     clearTimeout(this.timeout)
-    this.hide().$element.off('.' + this.type).removeData('bs.' + this.type)
+    this.hide(function () {
+      that.$element.off('.' + that.type).removeData('bs.' + that.type)
+    })
   }