aboutsummaryrefslogtreecommitdiff
path: root/dist/js/bootstrap.js
diff options
context:
space:
mode:
authorBootstrap's Grunt bot <[email protected]>2015-03-03 05:01:43 +0000
committerBootstrap's Grunt bot <[email protected]>2015-03-03 05:01:43 +0000
commitc1005f52839f56a49fea68cede63f29b35d77641 (patch)
tree4ace6aeee1b2330655d958b8688650b2334255f6 /dist/js/bootstrap.js
parent200f6fb10d1b41db80fe0750c13eac4157a9149f (diff)
downloadbootstrap-c1005f52839f56a49fea68cede63f29b35d77641.tar.xz
bootstrap-c1005f52839f56a49fea68cede63f29b35d77641.zip
automatic grunt dist
Diffstat (limited to 'dist/js/bootstrap.js')
-rw-r--r--dist/js/bootstrap.js54
1 files changed, 31 insertions, 23 deletions
diff --git a/dist/js/bootstrap.js b/dist/js/bootstrap.js
index 267c24880..7e4792c6a 100644
--- a/dist/js/bootstrap.js
+++ b/dist/js/bootstrap.js
@@ -916,13 +916,15 @@ if (typeof jQuery === 'undefined') {
// ======================
var Modal = function (element, options) {
- this.options = options
- this.$body = $(document.body)
- this.$element = $(element)
- this.$backdrop = null
- this.isShown = null
- this.originalBodyPad = null
- this.scrollbarWidth = 0
+ this.options = options
+ this.$body = $(document.body)
+ this.$element = $(element)
+ this.$dialog = this.$element.find('.modal-dialog')
+ this.$backdrop = null
+ this.isShown = null
+ this.originalBodyPad = null
+ this.scrollbarWidth = 0
+ this.ignoreBackdropClick = false
if (this.options.remote) {
this.$element
@@ -967,6 +969,12 @@ if (typeof jQuery === 'undefined') {
this.$element.on('click.dismiss.bs.modal', '[data-dismiss="modal"]', $.proxy(this.hide, this))
+ this.$dialog.on('mousedown.dismiss.bs.modal', function () {
+ that.$element.one('mouseup.dismiss.bs.modal', function (e) {
+ if ($(e.target).is(that.$element)) that.ignoreBackdropClick = true
+ })
+ })
+
this.backdrop(function () {
var transition = $.support.transition && that.$element.hasClass('fade')
@@ -978,7 +986,6 @@ if (typeof jQuery === 'undefined') {
.show()
.scrollTop(0)
- if (that.options.backdrop) that.adjustBackdrop()
that.adjustDialog()
if (transition) {
@@ -994,7 +1001,7 @@ if (typeof jQuery === 'undefined') {
var e = $.Event('shown.bs.modal', { relatedTarget: _relatedTarget })
transition ?
- that.$element.find('.modal-dialog') // wait for modal to slide in
+ that.$dialog // wait for modal to slide in
.one('bsTransitionEnd', function () {
that.$element.trigger('focus').trigger(e)
})
@@ -1023,6 +1030,9 @@ if (typeof jQuery === 'undefined') {
.removeClass('in')
.attr('aria-hidden', true)
.off('click.dismiss.bs.modal')
+ .off('mouseup.dismiss.bs.modal')
+
+ this.$dialog.off('mousedown.dismiss.bs.modal')
$.support.transition && this.$element.hasClass('fade') ?
this.$element
@@ -1083,13 +1093,18 @@ if (typeof jQuery === 'undefined') {
var doAnimate = $.support.transition && animate
this.$backdrop = $('<div class="modal-backdrop ' + animate + '" />')
- .prependTo(this.$element)
- .on('click.dismiss.bs.modal', $.proxy(function (e) {
- if (e.target !== e.currentTarget) return
- this.options.backdrop == 'static'
- ? this.$element[0].focus.call(this.$element[0])
- : this.hide.call(this)
- }, this))
+ .appendTo(this.$body)
+
+ this.$element.on('click.dismiss.bs.modal', $.proxy(function (e) {
+ if (this.ignoreBackdropClick) {
+ this.ignoreBackdropClick = false
+ return
+ }
+ if (e.target !== e.currentTarget) return
+ this.options.backdrop == 'static'
+ ? this.$element[0].focus()
+ : this.hide()
+ }, this))
if (doAnimate) this.$backdrop[0].offsetWidth // force reflow
@@ -1124,16 +1139,9 @@ if (typeof jQuery === 'undefined') {
// these following methods are used to handle overflowing modals
Modal.prototype.handleUpdate = function () {
- if (this.options.backdrop) this.adjustBackdrop()
this.adjustDialog()
}
- Modal.prototype.adjustBackdrop = function () {
- this.$backdrop
- .css('height', 0)
- .css('height', this.$element[0].scrollHeight)
- }
-
Modal.prototype.adjustDialog = function () {
var modalIsOverflowing = this.$element[0].scrollHeight > document.documentElement.clientHeight