/magehelp/js/jqplot/examples/kcp_pyramid_by_age.php
PHP | 862 lines | 692 code | 117 blank | 53 comment | 6 complexity | fc2bdf5056019cbd9cd18a237c8c1dc2 MD5 | raw file
Possible License(s): LGPL-3.0
- <!DOCTYPE html>
- <html>
- <head>
- <?php
- $title = "Pyramid Chart By Age";
- ?>
-
- <title><?php print $title ?></title>
- <link class="include" rel="stylesheet" type="text/css" href="../jquery.jqplot.css" />
- <link rel="stylesheet" type="text/css" href="examples.css" />
- <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shCoreDefault.min.css" />
- <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shThemejqPlot.min.css" />
-
- <!--[if lt IE 9]><script language="javascript" type="text/javascript" src="../excanvas.js"></script><![endif]-->
- <script class="include" type="text/javascript" src="../jquery.min.js"></script>
-
- <link class="include" type="text/css" href="jquery-ui/css/smoothness/jquery-ui.min.css" rel="Stylesheet" />
- <link href="colorpicker/jquery.colorpicker.css" rel="stylesheet" type="text/css"/>
- <style type="text/css">
- html {
- width: 100%;
- height: 100%;
- }
-
- body {
- width: 98%;
- height: 97%;
- margin: 6px;
- }
- .quintile-outer-container {
- width: 97%;
- height: 97%;
- margin: auto;
- }
- .jqplot-chart {
- /* width: 400px;
- height: 400px;*/
- }
- .quintile-toolbar .ui-icon {
- float: right;
- margin: 3px 5px;
- }
- table.stats-table td, table.highlighted-stats-table td {
- background-color: rgb(230, 230, 230);
- padding: 0.5em;
- }
- col.label {
- width: 14em;
- }
- col.value {
- width: 7em;
- }
- td.quintile-value {
- width: 7em;
- text-align: right;
- }
- table.stats-table td.tooltip-header, table.highlighted-stats-table td.tooltip-header {
- background-color: rgb(200, 200, 200);
- }
- table.stats-table, table.highlighted-stats-table, td.contour-cell {
- font-size: 0.7em;
- }
- td.contour-cell {
- height: 1.5em;
- padding-left: 20px;
- padding-bottom: 1.5em;
- }
- table.highlighted-stats-table {
- margin-top: 15px;
- }
- div.stats-cell div.input {
- font-size: 0.7em;
- margin-top: 1.5em;
- }
- div.content-container {
- padding-left: 230px; /* LC width */
- padding-right: 300px; /* RC width */
- height: 100%;
- }
- div.content-container .column {
- position: relative;
- float: left;
- }
- div.controls {
- width: 170px; /* LC width */
- right: 230px; /* LC width */
- padding-left: 30px;
- padding-right: 30px;
- margin-left: -100%;
- margin-top: 30px;
- }
- div.chart-cell {
- width: 100%;
- height: 100%;
- }
- div.stats-cell {
- width: 270px; /* RC width */
- margin-right: -300px; /* RC width */
- padding-right: 30px;
- margin-top: 30px;
- }
- div.controls, div.controls select {
- font-size: 0.8em;
- }
- div.controls li {
- list-style-type: none;
- }
- div.controls ul {
- margin-top: 0.5em;
- padding-left: 0.2em;
- }
- div.overlay-chart-container {
- display: none;
- z-index: 11;
- position: fixed;
- width: 800px;
- left: 50%;
- margin-left: -400px;
- background-color: white;
- }
- div.overlay-chart-container div.ui-icon {
- float: right;
- margin: 3px 5px;
- }
- div.overlay-shadow {
- display: none;
- z-index: 10;
- background-color: rgba(0, 0, 0, 0.8);
- position: fixed;
- top: 0px;
- left: 0px;
- width: 100%;
- height: 100%;
- }
- div.ui-colorpicker div.ui-dialog-titlebar {
- padding: 0.1em 0.3em;
- }
- input.color {
- display: none;
- }
- div.colorpicker-container span {
- padding: 3px;
- }
- div.quintile-content {
- width: 100%;
- height: 100%;
- }
- @media print {
- div.stats-cell {
- vertical-align: top;
- padding-top: 35px;
- }
- table.stats-table, table.stats-table td {
- color: #aaaaaa;
- border: 1px solid #bbbbbb;
- border-collapse: collapse;
- }
- table.stats-table tr {
- font-family: Verdana,Arial,sans-serif;
- /*font-size: 0.7em;*/
- }
- }
- </style>
-
- </head>
- <body>
- <!-- Example scripts go here -->
-
- <div class="overlay-shadow"></div>
- <div class="overlay-chart-container ui-corner-all">
- <div class="overlay-chart-container-header ui-widget-header ui-corner-top">Right click the image to Copy or Save As...<div class="ui-icon ui-icon-closethick"></div></div>
- <div class="overlay-chart-container-content ui-corner-bottom"></div>
- </div>
- <div class="quintile-outer-container ui-widget ui-corner-all">
- <div class="quintile-toolbar ui-widget-header ui-corner-top">
- <span class="quintile-title">Income Level:</span>
- </div>
- <div class="quintile-content ui-widget-content ui-corner-bottom">
- <div class="content-container">
- <div class="chart-cell column">
- <div id="agesChart" class="jqplot-chart"></div>
- </div>
- <div class="controls column">
- <table>
- <tr>
- <td>
- Axes:
- </td>
- <td>
- <select name="axisPosition">
- <option value="both">Left & Right</option>
- <option value = "left">Left</option>
- <option value = "right">Right</option>
- <option value = "mid">Mid</option>
- </select>
- </td>
- </tr>
- <tr>
- <td>
- Colors:
- </td>
- <td>
- <ul>
- <li><input class="color" type="color" id="colorMale" /> Male</li>
- <li><input class="color" type="color" id="colorFemale" /> Female</li>
- <li><input class="color" type="color" id="colorBackground" /> Background</li>
- <li><input class="color" type="color" id="colorPlotBands" /> Plot Bands</li>
- </ul>
- </td>
- </tr>
- <tr>
- <td>
- Grids:
- </td>
- <td>
- <ul>
- <li><input name="gridsVertical" value="vertical" type="checkbox" />Vertical</li>
- <li><input name="gridsHorizontal" value="horizontal" type="checkbox" />Horizontal</li>
- <li><input name="showMinorTicks" value="true" type="checkbox" checked />Only major</li>
- <li><input name="plotBands" value="true" type="checkbox" checked />Plot Bands</li>
- </ul>
- </td>
- </tr>
- <tr>
- <td colspan="2">
- <ul>
- <li><input name="barPadding" value="2" type="checkbox" checked />Gap between bars</li>
- <!-- value for showContour is speed at which to fade lines in/out -->
- <li><input name="showContour" value="500" type="checkbox" />Comparison Line</li>
- </ul>
- </td>
- </tr>
- </table>
- </div>
- <div class="stats-cell column">
- <table class="stats-table">
- <colgroup>
- <col class="label">
- <col class="value">
- </colgroup>
- <tbody>
- <tr>
- <td class="ui-corner-tl">Mean Age:</td>
- <td class="quintile-value summary-meanAge ui-corner-tr"></td>
- </tr>
- <tr>
- <td>Sex Ratio:</td>
- <td class="quintile-value summary-sexRatio"></td>
- </tr>
- <tr>
- <td>Age Dependency Ratio:</td>
- <td class="quintile-value summary-ageDependencyRatio"></td>
- </tr>
- <tr>
- <td>Population, Total:</td>
- <td class="quintile-value summary-populationTotal"></td>
- </tr>
- <tr>
- <td>Population, Male:</td>
- <td class="quintile-value summary-populationMale"></td>
- </tr>
- <tr>
- <td class="ui-corner-bl">Population, Female:</td>
- <td class="quintile-value summary-populationFemale ui-corner-br"></td>
- </tr>
- </tbody>
- </table>
- <table class="highlighted-stats-table">
- <colgroup>
- <col class="label">
- <col class="value">
- </colgroup>
- <tbody>
- <tr class="tooltip-header">
- <td class="tooltip-header ui-corner-top" colspan="2">Highlighted Age: <span class="tooltip-item tooltipAge"> </span></td>
- </tr>
- <tr>
- <td>Population, Male: </td>
- <td class="quintile-value"><span class="tooltip-item tooltipMale"> </span></td>
- </tr>
- <tr>
- <td>Population, Female: </td>
- <td class="quintile-value"><span class="tooltip-item tooltipFemale"> </span></td>
- </tr>
- <tr>
- <td class="ui-corner-bl">Sex Ratio: </td>
- <td class="quintile-value ui-corner-br"><span class="tooltip-item tooltipRatio"> </span></td>
- </tr>
- <tbody>
- </table>
- </div>
- </div>
- </div>
- </div>
-
- <script class="code" type="text/javascript">
- $(document).ready(function(){
- // if browser supports canvas, show additional toolbar icons
- if (!$.jqplot.use_excanvas) {
- $('div.quintile-toolbar').append('<div class="ui-icon ui-icon-image"></div><div class="ui-icon ui-icon-print"></div>');
- }
- // for this demo, all data is same for each quintile.
- // could do something like this to get the index of the quintile.
- // <!-- var quintileIndex = parseInt(< ? php echo $_GET["qidx"]; ? >); -->
- var male;
- var female;
- var summaryTable;
- var sexRatios;
- jsondata = [];
- $.ajax({
- type: "GET",
- dataType: 'json',
- async: false,
- url: "ages.json",
- contentType: "application/json",
- success: function (retdata) {
- // array of arrays of data for each quintile
- // each quintile array has data for following:
- // 0: summary table
- // 1: male data
- // 2: female data
- // 3: ratios
- jsondata = retdata;
- },
- error: function (xhr) { console.log("ERROR: ", xhr.statusText) }
- });
- // the "x" values from the data will go into the ticks array.
- // ticks should be strings for this case where we have values like "75+"
- var ticks = jsondata[4];
- $('td.summary-meanAge').each(function(index) {
- $(this).html($.jqplot.sprintf('%5.2f', jsondata[0][3]));
- });
- $('td.summary-sexRatio').each(function(index) {
- $(this).html($.jqplot.sprintf('%5.2f', jsondata[3][0]));
- });
- $('td.summary-ageDependencyRatio').each(function(index) {
- $(this).html($.jqplot.sprintf('%5.2f', jsondata[0][6]));
- });
- $('td.summary-populationTotal').each(function(index) {
- $(this).html($.jqplot.sprintf("%'d", jsondata[0][0]));
- });
- $('td.summary-populationMale').each(function(index) {
- $(this).html($.jqplot.sprintf("%'d", jsondata[0][1]));
- });
- $('td.summary-populationFemale').each(function(index) {
- $(this).html($.jqplot.sprintf("%'d", jsondata[0][2]));
- });
-
- // These two variables should be removed outside of the jqplot.com example environment.
- $.jqplot._noToImageButton = true;
- $.jqplot._noCodeBlock = true;
- // Custom color arrays are set up for each series to get the look that is desired.
- // Two color arrays are created for the default and optional color which the user can pick.
- var greenColors = ["#526D2C", "#77933C", "#C57225", "#C57225"];
- var blueColors = ["#3F7492", "#4F9AB8", "#C57225", "#C57225"];
- // To accomodate changing y axis, need to keep track of plot options.
- // changing axes will require recreating the plot, so need to keep
- // track of state changes.
- var plotOptions = {
- // We set up a customized title which acts as labels for the left and right sides of the pyramid.
- title: {
- text: '<span style="margin-left:25%;">Male</span><span style="margin-left:33%;">Female</span>',
- textAlign: 'left'
- },
- // by default, the series will use the green color scheme.
- seriesColors: greenColors,
- grid: {
- drawBorder: false,
- shadow: false,
- background: "#ffffff",
- rendererOptions: {
- // plotBands is an option of the pyramidGridRenderer.
- // it will put banding at starting at a specified value
- // along the y axis with an adjustable interval.
- plotBands: {
- show: true,
- interval: 10,
- color: 'rgb(245, 235, 215)'
- }
- }
- },
- // This makes the effective starting value of the axes 0 instead of 1.
- // For display, the y axis will use the ticks we supplied.
- defaultAxisStart: 0,
- seriesDefaults: {
- renderer: $.jqplot.PyramidRenderer,
- rendererOptions: {
- barPadding: 1.5,
- offsetBars: true
- },
- yaxis: "yaxis",
- shadow: false
- },
- // We have 4 series, the left and right pyramid bars and
- // the left and rigt overlay lines.
- series: [
- // For pyramid plots, the default side is right.
- // We want to override here to put first set of bars
- // on left.
- {
- rendererOptions:{
- side: "left",
- synchronizeHighlight: 1
- }
- },
- {
- yaxis: "y2axis",
- rendererOptions: {
- synchronizeHighlight: 0
- }
- },
- {
- rendererOptions: {
- fill: false,
- side: 'left'
- }
- },
- {
- yaxis: 'y2axis',
- rendererOptions: {
- fill: false
- }
- }
- ],
- axesDefaults: {
- tickOptions: {
- showGridline: false
- },
- pad: 0,
- rendererOptions: {
- baselineWidth: 2
- }
- },
- // Set up all the y axes, since users are allowed to switch between them.
- // The only axis that will show is the one that the series are "attached" to.
- // We need the appropriate options for the others for when the user switches.
- axes: {
- xaxis: {
- tickOptions: {
- formatter: $.jqplot.PercentTickFormatter,
- formatString: '%.1f%%'
- }
- },
- yaxis: {
- label: "Age",
- // Use canvas label renderer to get rotated labels.
- labelRenderer: $.jqplot.CanvasAxisLabelRenderer,
- // include empty tick options, they will be used
- // as users set options with plot controls.
- tickOptions: {},
- showMinorTicks: false,
- tickInterval: 5,
- ticks: ticks,
- rendererOptions: {
- tickSpacingFactor: 15,
- category: false
- }
- },
- yMidAxis: {
- label: "Age",
- // include empty tick options, they will be used
- // as users set options with plot controls.
- tickOptions: {},
- showMinorTicks: false,
- tickInterval: 5,
- ticks: ticks,
- rendererOptions: {
- tickSpacingFactor: 15,
- category: false
- }
- },
- y2axis: {
- label: "Age",
- // Use canvas label renderer to get rotated labels.
- labelRenderer: $.jqplot.CanvasAxisLabelRenderer,
- // include empty tick options, they will be used
- // as users set options with plot controls.
- tickOptions: {},
- showMinorTicks: false,
- tickInterval: 5,
- ticks: ticks,
- rendererOptions: {
- tickSpacingFactor: 15,
- category: false
- }
- }
- }
- };
- // resize the chart container to fill the space
- $('#agesChart').height($('div.chart-cell').height()*0.96);
- $('#agesChart').width($('div.chart-cell').width()*0.97);
- // $('#agesChart').jqplot([jsondata[1], jsondata[2]], plotOptions);
- $.jqplot.config.addDomReference = true;
- var plot1 = $.jqplot('agesChart', [jsondata[1], jsondata[2]], plotOptions);
- $(window).resize (function(event, ui) {
- // pass in resetAxes: true option to get rid of old ticks and axis properties
- // which should be recomputed based on new plot size.
- $('#agesChart').height($('div.chart-cell').height()*0.96);
- $('#agesChart').width($('div.chart-cell').width()*0.97);
- plot1.replot( { resetAxes: true } );
- });
- // initialize form elements
- // set these before attaching event handlers.
- $("input[type=checkbox][name=gridsVertical]").attr("checked", false);
- $("input[type=checkbox][name=gridsHorizontal]").attr("checked", false);
- $("input[type=checkbox][name=showMinorTicks]").attr("checked", true);
- $("input[type=checkbox][name=plotBands]").attr("checked", true);
- $("input[type=checkbox][name=showContour]").attr("checked", true);
- $("input[type=checkbox][name=barPadding]").attr("checked", true);
- $("select[name=axisPosition]").val("both");
- //////
- // The followng functions use verbose css selectors to make
- // it clear exactly which elements they are binging to/operating on
- //////
- $("select[name=axisPosition]").change(function(){
- // this refers to the html element we are binding to.
- // $(this) is jQuery object on that element.
- var opts = {series:[{}, {}, {}, {}]};
- switch ($(this).val()) {
- case "both":
- opts.series[0].yaxis = "yaxis";
- opts.series[1].yaxis = "y2axis";
- opts.series[2].yaxis = "yaxis";
- opts.series[3].yaxis = "y2axis";
- break;
- case "left":
- opts.series[0].yaxis = "yaxis";
- opts.series[1].yaxis = "yaxis";
- opts.series[2].yaxis = "yaxis";
- opts.series[3].yaxis = "yaxis";
- break;
- case "right":
- opts.series[0].yaxis = "y2axis";
- opts.series[1].yaxis = "y2axis";
- opts.series[2].yaxis = "y2axis";
- opts.series[3].yaxis = "y2axis";
- break;
- case "mid":
- opts.series[0].yaxis = "yMidAxis";
- opts.series[1].yaxis = "yMidAxis";
- opts.series[2].yaxis = "yMidAxis";
- opts.series[3].yaxis = "yMidAxis";
- break;
- default:
- break;
-
- }
- plot1.replot(opts);
- });
- // bind to the data highlighting event to make custom tooltip:
- $(".jqplot-target").each(function(index){
- $(this).bind("jqplotDataHighlight", function(evt, seriesIndex, pointIndex, data) {
- // Here, assume first series is male poulation and second series is female population.
- // Adjust series indices as appropriate.
- var plot = $(this).data('jqplot');
- var malePopulation = Math.abs(plot.series[0].data[pointIndex][1]) * jsondata[0][1];
- var femalePopulation = Math.abs(plot.series[1].data[pointIndex][1]) * jsondata[0][2];
- var malePopulation = jsondata[1][pointIndex] * jsondata[0][1];
- var femalePopulation = jsondata[2][pointIndex] * jsondata[0][2];
- // var ratio = femalePopulation / malePopulation * 100;
- var ratio = jsondata[3][pointIndex];
- $('.tooltipMale').stop(true, true).fadeIn(350).html($.jqplot.sprintf("%'d", malePopulation));
- $('.tooltipFemale').stop(true, true).fadeIn(350).html($.jqplot.sprintf("%'d", femalePopulation));
- $('.tooltipRatio').stop(true, true).fadeIn(350).html($.jqplot.sprintf('%5.2f', ratio));
- // Since we don't know which axis is rendererd and acive with out a little extra work,
- // just use the supplied ticks array to get the age label.
- $('.tooltipAge').stop(true, true).fadeIn(350).html(ticks[pointIndex]);
- });
- });
- // bind to the data highlighting event to make custom tooltip:
- $(".jqplot-target").each(function() {
- $(this).bind("jqplotDataUnhighlight", function(evt, seriesIndex, pointIndex, data) {
- // clear out all the tooltips.
- $(".tooltip-item").fadeOut(250);
- });
- });
- $('.ui-icon-print').click(function(){
- $(this).parent().next().print();
- });
- $("input[type=checkbox][name=gridsVertical]").change(function(){
- // this refers to the html element we are binding to.
- // $(this) is jQuery object on that element.
- var opts = {axes: {xaxis: {tickOptions: {showGridline: this.checked}}}};
- plot1.replot(opts);
- });
- $("input[type=checkbox][name=gridsHorizontal]").change(function(){
- // this refers to the html element we are binding to.
- // $(this) is jQuery object on that element.
- var opts = {
- axes: {
- yaxis: {
- tickOptions: {showGridline: this.checked}
- },
- y2axis: {
- tickOptions: {showGridline: this.checked}
- },
- yMidAxis: {
- tickOptions: {showGridline: this.checked}
- }
- }
- };
- plot1.replot(opts);
- });
- $("input[type=checkbox][name=plotBands]").change(function(){
- // this refers to the html element we are binding to.
- // $(this) is jQuery object on that element.
- var opts = {grid:{ rendererOptions: {plotBands: { show: this.checked}}}};
- plot1.replot(opts);
- });
- ////
- // To-Do
- //
- // initialize form elements on reload.
- // figure out what overlay line would be.
- // have to adjust ticks to do show minor.
- // make like kcp_pyramid.php
- ////
- $("input[type=checkbox][name=showMinorTicks]").change(function(){
- // this refers to the html element we are binding to.
- // $(this) is jQuery object on that element.
- var opts = {
- axes: {
- yaxis: {
- showMinorTicks: !this.checked
- },
- y2axis: {
- showMinorTicks: !this.checked
- },
- yMidAxis: {
- showMinorTicks: !this.checked
- }
- }
- };
- plot1.replot(opts);
- });
- $("input[type=checkbox][name=barPadding]").change(function(){
- // this refers to the html element we are binding to.
- // $(this) is jQuery object on that element.
- if (this.checked) {
- var val = parseFloat($(this).val());
- var opts = {
- seriesDefaults: {
- rendererOptions: {
- barPadding: val
- }
- }
- };
- }
- else {
- var opts = {
- seriesDefaults: {
- rendererOptions: {
- barPadding: 0
- }
- }
- };
- }
- plot1.replot(opts);
- });
- $('.ui-icon-image').each(function() {
- $(this).bind('click', function(evt) {
- var chart = $(this).closest('div.quintile-outer-container').find('div.jqplot-target');
- var imgelem = chart.jqplotToImageElem();
- var div = $('div.overlay-chart-container-content');
- div.empty();
- div.append(imgelem);
- $('div.overlay-shadow').fadeIn(600);
- div.parent().fadeIn(1000);
- div = null;
- });
- });
- $('div.overlay-chart-container-header div.ui-icon-closethick').click(function(){
- var div = $('div.overlay-chart-container-content');
- div.parent().fadeOut(600);
- $('div.overlay-shadow').fadeOut(1000);
- });
- function applyColors () {
- var opts = {series:[{}, {}], grid:{rendererOptions:{plotBands:{}}}};
- opts.series[0].color = $('#colorMale').data('colorpicker').color.toCSS();
- opts.series[1].color = $('#colorFemale').data('colorpicker').color.toCSS();
- opts.grid.background = $('#colorBackground').data('colorpicker').color.toCSS();
- opts.grid.rendererOptions.plotBands.color = $('#colorPlotBands').data('colorpicker').color.toCSS();
- plot1.replot(opts);
- };
- // $('#colorMale').val(plot1.series[0].color);
- $('#colorMale').colorpicker({
- showOn: 'button',
- showHeader: true,
- showSwatches: true,
- buttonColorize: true,
- buttonImageOnly: true,
- parts: 'full',
- color: plot1.series[0].color,
- onClose: applyColors
- });
- $('#colorFemale').colorpicker({
- showOn: 'button',
- showHeader: true,
- showSwatches: true,
- buttonColorize: true,
- buttonImageOnly: true,
- parts: 'full',
- color: plot1.series[1].color,
- onClose: applyColors
- });
- $('#colorBackground').colorpicker({
- showOn: 'button',
- showHeader: true,
- showSwatches: true,
- buttonColorize: true,
- buttonImageOnly: true,
- parts: 'full',
- color: plot1.grid.background,
- onClose: applyColors
- });
- $('#colorPlotBands').colorpicker({
- showOn: 'button',
- showHeader: true,
- showSwatches: true,
- buttonColorize: true,
- buttonImageOnly: true,
- parts: 'full',
- color: plot1.grid.plotBands.color,
- onClose: applyColors
- });
- });
- </script>
- <script class="include" type="text/javascript" src="../jquery.jqplot.js"></script>
- <script type="text/javascript" src="syntaxhighlighter/scripts/shCore.min.js"></script>
- <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushJScript.min.js"></script>
- <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushXml.min.js"></script>
- <script class="include" type="text/javascript" src="../plugins/jqplot.categoryAxisRenderer.js"></script>
- <!-- load the pyramidAxis and Grid renderers in production. pyramidRenderer will try to load via ajax if not present, but that is not optimal and depends on paths being set. -->
- <script class="include" type="text/javascript" src="../plugins/jqplot.pyramidAxisRenderer.js"></script>
- <script class="include" type="text/javascript" src="../plugins/jqplot.pyramidGridRenderer.js"></script>
- <script class="include" type="text/javascript" src="../plugins/jqplot.pyramidRenderer.js"></script>
- <script class="include" type="text/javascript" src="../plugins/jqplot.canvasTextRenderer.js"></script>
- <script class="include" type="text/javascript" src="../plugins/jqplot.canvasAxisLabelRenderer.js"></script>
- <script class="include" type="text/javascript" src="../plugins/jqplot.json2.js"></script>
- <script class="include" type="text/javascript" src="jquery-ui/js/jquery-ui.min.js"></script>
- <script class="include" type="text/javascript" src="kcp.print.js"></script>
- <script src="colorpicker/jquery.colorpicker.js"></script>
-
- <script type="text/javascript" src="example.js"></script>
- </body>
- </html>