diff options
| author | Mark Otto <[email protected]> | 2013-12-31 10:38:31 -0800 |
|---|---|---|
| committer | Mark Otto <[email protected]> | 2013-12-31 10:38:31 -0800 |
| commit | 0df96d8c320d664336707e1f6f9e5b254a6edb23 (patch) | |
| tree | de6a4deaae57f7b95d1b94f6bb2cc6921439952f /js | |
| parent | 70b8b330f04960091a99c159f7346ac99d22f31f (diff) | |
| parent | a1b545807327134401eaed28d6f6259eb0d5a7eb (diff) | |
| download | bootstrap-0df96d8c320d664336707e1f6f9e5b254a6edb23.tar.xz bootstrap-0df96d8c320d664336707e1f6f9e5b254a6edb23.zip | |
Merge branch 'master' into docs_dir
Diffstat (limited to 'js')
| -rw-r--r-- | js/carousel.js | 2 | ||||
| -rw-r--r-- | js/dropdown.js | 19 | ||||
| -rw-r--r-- | js/modal.js | 14 | ||||
| -rw-r--r-- | js/scrollspy.js | 5 |
4 files changed, 27 insertions, 13 deletions
diff --git a/js/carousel.js b/js/carousel.js index fbd055116..a9a2eb2d1 100644 --- a/js/carousel.js +++ b/js/carousel.js @@ -100,7 +100,7 @@ $next = this.$element.find('.item')[fallback]() } - if ($next.hasClass('active')) return + if ($next.hasClass('active')) return this.sliding = false var e = $.Event('slide.bs.carousel', { relatedTarget: $next[0], direction: direction }) this.$element.trigger(e) diff --git a/js/dropdown.js b/js/dropdown.js index 48752fda5..1e25403fc 100644 --- a/js/dropdown.js +++ b/js/dropdown.js @@ -34,13 +34,14 @@ $('<div class="dropdown-backdrop"/>').insertAfter($(this)).on('click', clearMenus) } - $parent.trigger(e = $.Event('show.bs.dropdown')) + var relatedTarget = { relatedTarget: this } + $parent.trigger(e = $.Event('show.bs.dropdown', relatedTarget)) if (e.isDefaultPrevented()) return $parent .toggleClass('open') - .trigger('shown.bs.dropdown') + .trigger('shown.bs.dropdown', relatedTarget) $this.focus() } @@ -66,7 +67,8 @@ return $this.click() } - var $items = $('[role=menu] li:not(.divider):visible a', $parent) + var desc = ' li:not(.divider):visible a' + var $items = $parent.find('[role=menu]' + desc + ', [role=listbox]' + desc) if (!$items.length) return @@ -79,14 +81,15 @@ $items.eq(index).focus() } - function clearMenus() { + function clearMenus(e) { $(backdrop).remove() - $(toggle).each(function (e) { + $(toggle).each(function () { var $parent = getParent($(this)) + var relatedTarget = { relatedTarget: this } if (!$parent.hasClass('open')) return - $parent.trigger(e = $.Event('hide.bs.dropdown')) + $parent.trigger(e = $.Event('hide.bs.dropdown', relatedTarget)) if (e.isDefaultPrevented()) return - $parent.removeClass('open').trigger('hidden.bs.dropdown') + $parent.removeClass('open').trigger('hidden.bs.dropdown', relatedTarget) }) } @@ -138,6 +141,6 @@ .on('click.bs.dropdown.data-api', clearMenus) .on('click.bs.dropdown.data-api', '.dropdown form', function (e) { e.stopPropagation() }) .on('click.bs.dropdown.data-api', toggle, Dropdown.prototype.toggle) - .on('keydown.bs.dropdown.data-api', toggle + ', [role=menu]', Dropdown.prototype.keydown) + .on('keydown.bs.dropdown.data-api', toggle + ', [role=menu], [role=listbox]', Dropdown.prototype.keydown) }(jQuery); diff --git a/js/modal.js b/js/modal.js index 5fd53b849..856ea7cd8 100644 --- a/js/modal.js +++ b/js/modal.js @@ -18,9 +18,13 @@ this.$backdrop = this.isShown = null - if (this.options.remote) this.$element.find('.modal-content').load(this.options.remote, $.proxy(function () { - this.$element.trigger('loaded.bs.modal') - }, this)) + if (this.options.remote) { + this.$element + .find('.modal-content') + .load(this.options.remote, $.proxy(function () { + this.$element.trigger('loaded.bs.modal') + }, this)) + } } Modal.DEFAULTS = { @@ -54,7 +58,9 @@ that.$element.appendTo(document.body) // don't move modals dom position } - that.$element.show() + that.$element + .show() + .scrollTop(0) if (transition) { that.$element[0].offsetWidth // force reflow diff --git a/js/scrollspy.js b/js/scrollspy.js index 571dafbde..fecd8a446 100644 --- a/js/scrollspy.js +++ b/js/scrollspy.js @@ -51,6 +51,7 @@ return ($href && $href.length + && $href.is(':visible') && [[ $href[offsetMethod]().top + (!$.isWindow(self.$scrollElement.get(0)) && self.$scrollElement.scrollTop()), href ]]) || null }) .sort(function (a, b) { return a[0] - b[0] }) @@ -73,6 +74,10 @@ return activeTarget != (i = targets.last()[0]) && this.activate(i) } + if (activeTarget && scrollTop <= offsets[0]) { + return activeTarget != (i = targets[0]) && this.activate(i) + } + for (i = offsets.length; i--;) { activeTarget != targets[i] && scrollTop >= offsets[i] |
