1
0
Fork 0
mirror of https://github.com/twbs/bootstrap.git synced 2022-11-09 12:25:43 -05:00

add special transitionend type to test event origin

fixes #13430
This commit is contained in:
fat 2014-06-10 19:56:08 -07:00
parent 9cdbf0e807
commit 7f122be004
7 changed files with 24 additions and 25 deletions

View file

@ -54,7 +54,7 @@
$.support.transition && $parent.hasClass('fade') ?
$parent
.one($.support.transition.end, removeElement)
.one('bsTransitionEnd', removeElement)
.emulateTransitionEnd(150) :
removeElement()
}

View file

@ -132,7 +132,7 @@
$active.addClass(direction)
$next.addClass(direction)
$active
.one($.support.transition.end, function () {
.one('bsTransitionEnd', function () {
$next.removeClass([type, direction].join(' ')).addClass('active')
$active.removeClass(['active', direction].join(' '))
that.sliding = false

View file

@ -61,18 +61,12 @@
this.transitioning = 1
var complete = function (e) {
if (e && e.target != this.$element[0]) {
this.$element
.one($.support.transition.end, $.proxy(complete, this))
return
}
var complete = function () {
this.$element
.removeClass('collapsing')
.addClass('collapse in')[dimension]('')
this.transitioning = 0
this.$element
.off($.support.transition.end + '.bs.collapse')
.trigger('shown.bs.collapse')
}
@ -81,7 +75,7 @@
var scrollSize = $.camelCase(['scroll', dimension].join('-'))
this.$element
.on($.support.transition.end + '.bs.collapse', $.proxy(complete, this))
.one('bsTransitionEnd', $.proxy(complete, this))
.emulateTransitionEnd(350)[dimension](this.$element[0][scrollSize])
}
@ -103,12 +97,7 @@
this.transitioning = 1
var complete = function (e) {
if (e && e.target != this.$element[0]) {
this.$element
.one($.support.transition.end, $.proxy(complete, this))
return
}
var complete = function () {
this.transitioning = 0
this.$element
.trigger('hidden.bs.collapse')
@ -120,7 +109,7 @@
this.$element
[dimension](0)
.one($.support.transition.end, $.proxy(complete, this))
.one('bsTransitionEnd', $.proxy(complete, this))
.emulateTransitionEnd(350)
}

View file

@ -89,7 +89,7 @@
transition ?
that.$element.find('.modal-dialog') // wait for modal to slide in
.one($.support.transition.end, function () {
.one('bsTransitionEnd', function () {
that.$element.trigger('focus').trigger(e)
})
.emulateTransitionEnd(300) :
@ -122,7 +122,7 @@
$.support.transition && this.$element.hasClass('fade') ?
this.$element
.one($.support.transition.end, $.proxy(this.hideModal, this))
.one('bsTransitionEnd', $.proxy(this.hideModal, this))
.emulateTransitionEnd(300) :
this.hideModal()
}
@ -185,7 +185,7 @@
doAnimate ?
this.$backdrop
.one($.support.transition.end, callback)
.one('bsTransitionEnd', callback)
.emulateTransitionEnd(150) :
callback()
@ -198,7 +198,7 @@
}
$.support.transition && this.$element.hasClass('fade') ?
this.$backdrop
.one($.support.transition.end, callbackRemove)
.one('bsTransitionEnd', callbackRemove)
.emulateTransitionEnd(150) :
callbackRemove()

View file

@ -85,7 +85,7 @@
transition ?
$active
.one($.support.transition.end, next)
.one('bsTransitionEnd', next)
.emulateTransitionEnd(150) :
next()

View file

@ -210,7 +210,7 @@
$.support.transition && this.$tip.hasClass('fade') ?
$tip
.one($.support.transition.end, complete)
.one('bsTransitionEnd', complete)
.emulateTransitionEnd(150) :
complete()
}
@ -298,7 +298,7 @@
$.support.transition && this.$tip.hasClass('fade') ?
$tip
.one($.support.transition.end, complete)
.one('bsTransitionEnd', complete)
.emulateTransitionEnd(150) :
complete()

View file

@ -40,7 +40,7 @@
$.fn.emulateTransitionEnd = function (duration) {
var called = false
var $el = this
$(this).one($.support.transition.end, function () { called = true })
$(this).one('bsTransitionEnd', function () { called = true })
var callback = function () { if (!called) $($el).trigger($.support.transition.end) }
setTimeout(callback, duration)
return this
@ -48,6 +48,16 @@
$(function () {
$.support.transition = transitionEnd()
if (!$.support.transition) return
$.event.special.bsTransitionEnd = {
bindType: $.support.transition.end,
delegateType: $.support.transition.end,
handle: function (e) {
if ($(e.target).is(this)) return e.handleObj.handler.apply(this, arguments)
}
}
})
});