diff options
Diffstat (limited to 'js/tooltip.js')
| -rw-r--r-- | js/tooltip.js | 31 |
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 |
