From 8f726dc6ef3ee725ef032ef4a11dbce26982ae24 Mon Sep 17 00:00:00 2001 From: Jacob Thornton Date: Mon, 31 Oct 2011 22:44:42 -0700 Subject: [PATCH] issue #240 - firefox drop css transition events :{o --- js/bootstrap-modal.js | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/js/bootstrap-modal.js b/js/bootstrap-modal.js index 9c57f6ddf3..72b78d6329 100644 --- a/js/bootstrap-modal.js +++ b/js/bootstrap-modal.js @@ -89,8 +89,7 @@ that.$element[0].offsetWidth // force reflow } - that.$element - .addClass('in') + that.$element.addClass('in') transition ? that.$element.one(transitionEnd, function () { that.$element.trigger('shown') }) : @@ -118,7 +117,7 @@ .removeClass('in') $.support.transition && this.$element.hasClass('fade') ? - this.$element.one(transitionEnd, $.proxy(hideModal, this)) : + hideWithTransition.call(this) : hideModal.call(this) return this @@ -130,6 +129,20 @@ /* MODAL PRIVATE METHODS * ===================== */ + function hideWithTransition() { + // firefox drops transitionEnd events :{o + var that = this + , timeout = setTimeout(function () { + that.$element.unbind(transitionEnd) + hideModal.call(that) + }, 500) + + this.$element.one(transitionEnd, function () { + clearTimeout(timeout) + hideModal.call(that) + }) + } + function hideModal (that) { this.$element .hide()