From: Jacob Thornton Date: Tue, 1 Nov 2011 05:44:42 +0000 (-0700) Subject: issue #240 - firefox drop css transition events :{o X-Git-Tag: v1.4.0~8^2 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=8f726dc6ef3ee725ef032ef4a11dbce26982ae24;p=thirdparty%2Fbootstrap.git issue #240 - firefox drop css transition events :{o --- 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()