Bug Tracker

Ticket #4259: jquery.tooltip-0.2.js

File jquery.tooltip-0.2.js, 1.2 KB (added by TheFlyingV, 10 years ago)

jQuery Tooltip plugin

Line 
1(function($) {
2        $.fn.tooltip = function(options) {
3                var settings = $.extend({}, $.fn.tooltip.defaults, options);
4                $.fn.tooltip.checkDIV(settings.id, settings.class);
5               
6                switch(settings.attribute) {
7                        case 'alt':
8                                settings.tip = $(this).attr('alt');
9                                break;
10                        case 'title':
11                                settings.tip = $(this).attr('title');
12                                break;
13                        case 'custom':
14                                if(!settings.tip)
15                                        // tip must me set when attribute is set to custom
16                                        throw Error('tooltip(): tip must me set when attribute is set to custom.');
17                                break;
18                }
19               
20                return this.each(function() {
21                        var $this = $(this);
22                        var $div = $('#' + settings.id);
23                        var tip = settings.tip;
24                       
25                        $this.mouseover(function() {
26                                $div.css({'left': $this.position().left, 'top': $this.position().top})
27                                        .html(tip)
28                                        .show();
29                        }).mouseout(function() {
30                                $div.hide()
31                                        .html('');
32                        })
33                })
34        };
35       
36        $.fn.tooltip.checkDIV = function(divId, divClass) {
37                var $div = $('#' + divId);
38                var $body = $('body');
39       
40                if($div.length > 0) {
41                        $div
42                                .hide()
43                                .addClass(divClass)
44                } else {
45                        $('<div />')
46                                .hide()
47                                .attr('id', divId)
48                                .addClass(divClass)
49                                .appendTo($body);
50                }
51        }
52       
53        $.fn.tooltip.defaults = {
54                id: 'tooltip',
55                tip: null,
56                class: 'tooltip',
57                attribute: 'alt'
58        }
59})(jQuery);