aboutsummaryrefslogtreecommitdiff
path: root/js/tooltip.js
diff options
context:
space:
mode:
Diffstat (limited to 'js/tooltip.js')
-rw-r--r--js/tooltip.js31
1 files changed, 25 insertions, 6 deletions
diff --git a/js/tooltip.js b/js/tooltip.js
index bb47d4336..f688b3020 100644
--- a/js/tooltip.js
+++ b/js/tooltip.js
@@ -99,7 +99,12 @@
Tooltip.prototype.enter = function (obj) {
var self = obj instanceof this.constructor ?
- obj : $(obj.currentTarget)[this.type](this.getDelegateOptions()).data('bs.' + this.type)
+ obj : $(obj.currentTarget).data('bs.' + this.type)
+
+ if (!self) {
+ self = new this.constructor(obj.currentTarget, this.getDelegateOptions())
+ $(obj.currentTarget).data('bs.' + this.type, self)
+ }
clearTimeout(self.timeout)
@@ -114,7 +119,12 @@
Tooltip.prototype.leave = function (obj) {
var self = obj instanceof this.constructor ?
- obj : $(obj.currentTarget)[this.type](this.getDelegateOptions()).data('bs.' + this.type)
+ obj : $(obj.currentTarget).data('bs.' + this.type)
+
+ if (!self) {
+ self = new this.constructor(obj.currentTarget, this.getDelegateOptions())
+ $(obj.currentTarget).data('bs.' + this.type, self)
+ }
clearTimeout(self.timeout)
@@ -381,7 +391,15 @@
}
Tooltip.prototype.toggle = function (e) {
- var self = e ? $(e.currentTarget)[this.type](this.getDelegateOptions()).data('bs.' + this.type) : this
+ var self = this
+ if (e) {
+ self = $(e.currentTarget).data('bs.' + this.type)
+ if (!self) {
+ self = new this.constructor(e.currentTarget, this.getDelegateOptions())
+ $(e.currentTarget).data('bs.' + this.type, self)
+ }
+ }
+
self.tip().hasClass('in') ? self.leave(self) : self.enter(self)
}
@@ -394,9 +412,7 @@
// TOOLTIP PLUGIN DEFINITION
// =========================
- var old = $.fn.tooltip
-
- $.fn.tooltip = function (option) {
+ function Plugin(option) {
return this.each(function () {
var $this = $(this)
var data = $this.data('bs.tooltip')
@@ -408,6 +424,9 @@
})
}
+ var old = $.fn.tooltip
+
+ $.fn.tooltip = Plugin
$.fn.tooltip.Constructor = Tooltip