HOWTO: Use DOM1 (.onclick, .onmousemove) events

Previously, adding custom RGraph events was rather verbose - being modeled on the dom2 method of adding events. Now though you can use the older but more concise dom1 method. You can only add one dom1 event listener (which could do multiple things) but you can add both dom1 and dom2 style event listeners at the same time.

This example uses the draw custom event to add a highlight after-effect to the bars. The code to achieve this is shown below.

<script>
    bar = new RGraph.Bar({
        id: 'cvs',
        data: [[47,75],[32,74],[71,85],[25,19],[23,71],[81,59],[43,130],[23,20]],
        options: {
            colors: ['#494949','#35A0DA'],
            xaxisLabels: ['Alf','Bob','Carry','Dara','Edgar','Fliss','Gary','Harry'],
            yaxisLabelsCount: 3,
            yaxisTickmarksCount: 3,
            backgroundGridVlines: false,
            backgroundGridBorder: false,
            marginLeft: 35,
            textSize: 14
        }
    });
    
    // Use the .on() function to add an ondraw function
    bar.ondraw = function (obj)
    {
        var len = obj.coords.length;
        
        for (var i=0; i<len; ++i) {
            obj.path(
                'fs rgba(255,255,255,0.15) fr % % % %',
                obj.coords[i][0], obj.coords[i][1], obj.coords[i][2] / 2, obj.coords[i][3]
            );
        }
    }
    
    bar.draw();
</script>

The on() function

Because dom1 events don't work particularly well with chaining there's an on function which helps you to use the dom1 events and chaining. For example:

<script>
    bar = new RGraph.Bar({
        id: 'cvs',
        data: [5,8,9,6,4,5,5],
        options: {
            // ...
        }
    }).on('draw', function (obj)
    {
        // ...
    }).draw()
    
    bar.draw();
</script>

An example of the tooltip event

This is an example of the tooltip event that you can use to create charts in tooltips.

<script>
    line = new RGraph.Line({
        id: 'cvs',
        data: [14,16,13,15,5,8,9,12],
        options: {
            labels: ['Luis','Kev','Jim','Harry','Hoolio','liss','Rhonda','Fred'],
            tooltips: '<canvas id="tooltip_canvas" width="300" height="100"></canvas>',
            tooltipsCss: {
                backgroundColor: 'white',
                color: 'black'
            },
            marginInner: 5,
            tickmarksStyle: 'endcircle',
            tickmarksSize: 7,
            shadow: false,
            textSize: 14,
            spline: true
        }
    }).draw();
    
    line.ontooltip = function (obj)
    {
        // This is the data for the tooltip bar chart
        var tooltip_data = [[4,4,6],[4,7,5],[10,1,2],[5,5,5],[1,2,2],[4,2,2],[2,4,3],[6,4,2]];
    
        // Get the visible tooltip
        var tooltip = RGraph.Registry.get('tooltip');
        var index   = tooltip.__index__;
        
        var bar = new RGraph.Bar({
            id: 'tooltip_canvas',
            data: tooltip_data[index],
            options: {
                marginLeft: 17,
                marginRight: 5,
                marginTop: 15,
                xaxisLabels: ['Monday','Tuesday','Wednesday'],
                backgroundGrid: false,
                yaxis: false,
                yaxisLabels: false,
                labelsAbovebar: true,
                shadow: false
            }
        }).draw();
    }
</script>