1
0
mirror of https://github.com/twbs/bootstrap.git synced 2025-09-29 06:49:06 +02:00

Merge branch '2.3.0-wip' into 3.0.0-wip

Conflicts:
	Makefile
	README.md
	component.json
	docs/assets/css/bootstrap-responsive.css
	docs/assets/css/bootstrap.css
	docs/assets/js/bootstrap-affix.js
	docs/assets/js/bootstrap-alert.js
	docs/assets/js/bootstrap-button.js
	docs/assets/js/bootstrap-carousel.js
	docs/assets/js/bootstrap-collapse.js
	docs/assets/js/bootstrap-dropdown.js
	docs/assets/js/bootstrap-modal.js
	docs/assets/js/bootstrap-popover.js
	docs/assets/js/bootstrap-scrollspy.js
	docs/assets/js/bootstrap-tab.js
	docs/assets/js/bootstrap-tooltip.js
	docs/assets/js/bootstrap-transition.js
	docs/assets/js/bootstrap-typeahead.js
	docs/assets/js/bootstrap.js
	docs/components.html
	docs/css.html
	docs/examples/fluid.html
	docs/extend.html
	docs/getting-started.html
	docs/index.html
	docs/templates/pages/base-css.mustache
	docs/templates/pages/components.mustache
	docs/templates/pages/extend.mustache
	docs/templates/pages/getting-started.mustache
	docs/templates/pages/index.mustache
	docs/templates/pages/javascript.mustache
	js/bootstrap-affix.js
	js/bootstrap-alert.js
	js/bootstrap-button.js
	js/bootstrap-carousel.js
	js/bootstrap-collapse.js
	js/bootstrap-dropdown.js
	js/bootstrap-modal.js
	js/bootstrap-popover.js
	js/bootstrap-scrollspy.js
	js/bootstrap-tab.js
	js/bootstrap-tooltip.js
	js/bootstrap-transition.js
	js/bootstrap-typeahead.js
	less/bootstrap.less
	less/buttons.less
	less/forms.less
	less/navbar.less
	less/popovers.less
	less/responsive-767px-max.less
	less/responsive.less
	less/tables.less
	less/tooltip.less
	less/type.less
	less/variables.less
	package.json
This commit is contained in:
Mark Otto
2013-01-13 04:26:52 -08:00
57 changed files with 869 additions and 292 deletions

View File

@@ -369,6 +369,7 @@
e = $.Event('slide', {
relatedTarget: $next[0]
, direction: direction
})
if ($next.hasClass('active')) return
@@ -448,11 +449,18 @@
/* CAROUSEL DATA-API
* ================= */
$(document).on('click.carousel.data-api', '[data-slide]', function (e) {
$(document).on('click.carousel.data-api', '[data-slide], [data-slide-to]', function (e) {
var $this = $(this), href
, $target = $($this.attr('data-target') || (href = $this.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '')) //strip for ie7
, options = $.extend({}, $target.data(), $this.data())
, slideIndex
$target.carousel(options)
if (slideIndex = $this.attr('data-slide-to')) {
$target.data('carousel').pause().to(slideIndex).cycle()
}
e.preventDefault()
})
@@ -587,7 +595,7 @@
return this.each(function () {
var $this = $(this)
, data = $this.data('collapse')
, options = typeof option == 'object' && option
, options = $.extend({}, $.fn.collapse.defaults, $this.data(), typeof option == 'object' && option)
if (!data) $this.data('collapse', (data = new Collapse(this, options)))
if (typeof option == 'string') data[option]()
})
@@ -705,7 +713,10 @@
isActive = $parent.hasClass('open')
if (!isActive || (isActive && e.keyCode == 27)) return $this.click()
if (!isActive || (isActive && e.keyCode == 27)) {
if (e.which == 27) $parent.find(toggle).focus()
return $this.click()
}
$items = $('[role=menu] li:not(.divider):visible a', $parent)
@@ -778,7 +789,7 @@
$(document)
.on('click.dropdown.data-api touchstart.dropdown.data-api', clearMenus)
.on('click.dropdown touchstart.dropdown.data-api', '.dropdown form', function (e) { e.stopPropagation() })
.on('click.dropdown.data-api touchstart.dropdown.data-api', '.dropdown form', function (e) { e.stopPropagation() })
.on('touchstart.dropdown.data-api', '.dropdown-menu', function (e) { e.stopPropagation() })
.on('click.dropdown.data-api touchstart.dropdown.data-api' , toggle, Dropdown.prototype.toggle)
.on('keydown.dropdown.data-api touchstart.dropdown.data-api', toggle + ', [role=menu]' , Dropdown.prototype.keydown)
@@ -1067,19 +1078,27 @@
, init: function (type, element, options) {
var eventIn
, eventOut
, triggers
, trigger
, i
this.type = type
this.$element = $(element)
this.options = this.getOptions(options)
this.enabled = true
if (this.options.trigger == 'click') {
this.$element.on('click.' + this.type, this.options.selector, $.proxy(this.toggle, this))
} else if (this.options.trigger != 'manual') {
eventIn = this.options.trigger == 'hover' ? 'mouseenter' : 'focus'
eventOut = this.options.trigger == 'hover' ? 'mouseleave' : 'blur'
this.$element.on(eventIn + '.' + this.type, this.options.selector, $.proxy(this.enter, this))
this.$element.on(eventOut + '.' + this.type, this.options.selector, $.proxy(this.leave, this))
triggers = this.options.trigger.split(' ')
for (i = triggers.length; i--;) {
trigger = triggers[i]
if (trigger == 'click') {
this.$element.on('click.' + this.type, this.options.selector, $.proxy(this.toggle, this))
} else if (trigger != 'manual') {
eventIn = trigger == 'hover' ? 'mouseenter' : 'focus'
eventOut = trigger == 'hover' ? 'mouseleave' : 'blur'
this.$element.on(eventIn + '.' + this.type, this.options.selector, $.proxy(this.enter, this))
this.$element.on(eventOut + '.' + this.type, this.options.selector, $.proxy(this.leave, this))
}
}
this.options.selector ?
@@ -1131,8 +1150,11 @@
, actualHeight
, placement
, tp
, e = $.Event('show')
if (this.hasContent() && this.enabled) {
this.$element.trigger(e)
if (e.isDefaultPrevented()) return
$tip = this.tip()
this.setContent()
@@ -1147,7 +1169,8 @@
$tip
.detach()
.css({ top: 0, left: 0, display: 'block' })
.insertAfter(this.$element)
this.options.container ? $tip.appendTo(this.options.container) : $tip.insertAfter(this.$element)
pos = this.getPosition()
@@ -1173,6 +1196,8 @@
.offset(tp)
.addClass(placement)
.addClass('in')
this.$element.trigger('shown')
}
}
@@ -1187,6 +1212,10 @@
, hide: function () {
var that = this
, $tip = this.tip()
, e = $.Event('hide')
this.$element.trigger(e)
if (e.isDefaultPrevented()) return
$tip.removeClass('in')
@@ -1205,6 +1234,8 @@
removeWithAnimation() :
$tip.detach()
this.$element.trigger('hidden')
return this
}
@@ -1263,8 +1294,8 @@
}
, toggle: function (e) {
var self = $(e.currentTarget)[this.type](this._options).data(this.type)
self[self.tip().hasClass('in') ? 'hide' : 'show']()
var self = e ? $(e.currentTarget)[this.type](this._options).data(this.type) : this
self.tip().hasClass('in') ? self.hide() : self.show()
}
, destroy: function () {
@@ -1296,10 +1327,11 @@
, placement: 'top'
, selector: false
, template: '<div class="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>'
, trigger: 'hover'
, trigger: 'hover focus'
, title: ''
, delay: 0
, html: false
, container: false
}
@@ -1311,7 +1343,8 @@
return this
}
}(window.jQuery);/* ===========================================================
}(window.jQuery);
/* ===========================================================
* bootstrap-popover.js v3.0.0
* http://twitter.github.com/bootstrap/javascript.html#popovers
* ===========================================================
@@ -1412,7 +1445,7 @@
placement: 'right'
, trigger: 'click'
, content: ''
, template: '<div class="popover"><div class="arrow"></div><div class="popover-inner"><h3 class="popover-title"></h3><div class="popover-content"></div></div></div>'
, template: '<div class="popover"><div class="arrow"></div><h3 class="popover-title"></h3><div class="popover-content"></div></div>'
})
@@ -1486,7 +1519,7 @@
, $href = /^#\w/.test(href) && $(href)
return ( $href
&& $href.length
&& [[ $href.position().top + self.$scrollElement.scrollTop(), href ]] ) || null
&& [[ $href.position().top + (!$.isWindow(self.$scrollElement.get(0)) && self.$scrollElement.scrollTop()), href ]] ) || null
})
.sort(function (a, b) { return a[0] - b[0] })
.each(function () {
@@ -2002,6 +2035,7 @@
e.stopPropagation()
e.preventDefault()
this.select()
this.$element.focus()
}
, mouseenter: function (e) {