diff options
| author | Mark Otto <[email protected]> | 2013-01-13 04:26:52 -0800 |
|---|---|---|
| committer | Mark Otto <[email protected]> | 2013-01-13 04:26:52 -0800 |
| commit | 7d8d5c783815d83bddc6969052f1600c45246d57 (patch) | |
| tree | 68378feaf630e4b670118b85dc7fb57501fcca9d /js/bootstrap-tooltip.js | |
| parent | 76ed6b0b2ced6a29c5cb7b6ea62d0c738dbbd90a (diff) | |
| parent | 4b34f4947aedc0e8539eee779e3921f44e0bca8b (diff) | |
| download | bootstrap-7d8d5c783815d83bddc6969052f1600c45246d57.tar.xz bootstrap-7d8d5c783815d83bddc6969052f1600c45246d57.zip | |
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
Diffstat (limited to 'js/bootstrap-tooltip.js')
| -rw-r--r-- | js/bootstrap-tooltip.js | 45 |
1 files changed, 33 insertions, 12 deletions
diff --git a/js/bootstrap-tooltip.js b/js/bootstrap-tooltip.js index bbb532776..d57cd9d7f 100644 --- a/js/bootstrap-tooltip.js +++ b/js/bootstrap-tooltip.js @@ -38,19 +38,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 ? @@ -102,8 +110,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() @@ -118,7 +129,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() @@ -144,6 +156,8 @@ .offset(tp) .addClass(placement) .addClass('in') + + this.$element.trigger('shown') } } @@ -158,6 +172,10 @@ , hide: function () { var that = this , $tip = this.tip() + , e = $.Event('hide') + + this.$element.trigger(e) + if (e.isDefaultPrevented()) return $tip.removeClass('in') @@ -176,6 +194,8 @@ removeWithAnimation() : $tip.detach() + this.$element.trigger('hidden') + return this } @@ -234,8 +254,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 () { @@ -267,10 +287,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 } @@ -282,4 +303,4 @@ return this } -}(window.jQuery);
\ No newline at end of file +}(window.jQuery); |
