jqplot tooltip on bar chart

后端 未结 3 1032
感情败类
感情败类 2020-12-08 16:03

I\'m using the jquery plugin jqplot for plotting some bar charts. on hover, I\'d like to display the tick for the bar and its value on a tooltip. I\'ve tried



        
3条回答
  •  渐次进展
    2020-12-08 16:25

    nevermind, I did a roundabout way to create my own tooltip via jquery.

    I left my highlighter settings as they were in my question (though you probably don't need the tooltip stuff).

    In my js file after the bar chart is set up (after $.jqplot('chart', ...) I set up an on mouse hover binding, as some of the examples showed. I modified it like this:

     $('#mychartdiv').bind('jqplotDataHighlight', 
            function (ev, seriesIndex, pointIndex, data ) {
                var mouseX = ev.pageX; //these are going to be how jquery knows where to put the div that will be our tooltip
                var mouseY = ev.pageY;
                $('#chartpseudotooltip').html(ticks_array[pointIndex] + ', ' + data[1]);
                var cssObj = {
                      'position' : 'absolute',
                      'font-weight' : 'bold',
                      'left' : mouseX + 'px', //usually needs more offset here
                      'top' : mouseY + 'px'
                    };
                $('#chartpseudotooltip').css(cssObj);
                }
        );    
    
        $('#chartv').bind('jqplotDataUnhighlight', 
            function (ev) {
                $('#chartpseudotooltip').html('');
            }
        );
    

    explanation: ticks_array is previously defined, containing the x axis tick strings. jqplot's data has the current data under your mouse as an [x-category-#, y-value] type array. pointIndex has the current highlighted bar #. Basically we will use this to get the tick string.

    Then I styled the tooltip so that it appears close to where the mouse cursor is. You will probably need to subtract from mouseX and mouseY a bit if this div is in other positioned containers.

    you can then style #chartpseudotooltip in your css. If you want the default styles you can just add it to .jqplot-highlighter-tooltip in the the jqplot.css.

    hope this is helpful to others!

提交回复
热议问题