Web : 使用RGraph(HTML5)绘制折线图(二)
2012-07-30 09:45
155 查看
上文提到了showCheckBox(canvasId, jsonResult)
显然其中showGRaph(canvasId, jsonResult, colorIndexs)是关键,上述第一段代码向每个div插入checkBox而已,值得注意的是插入位置的选取,以及value值决定checkBox是否勾选(汗,年少无知),另外给checkBox设置了onclick事件,具体的即为第二段代码
第二段代码中eval()函数是一个强大的功能(又一次年少无知),详细介绍可参见http://www.w3school.com.cn/js/jsref_eval.asp, 上述第二段代码中eval使用基于反射机制,获取到一个json对象
你懂得,下次详细介绍showRGraph(canvasId, jsonResult, colorIndexs)
function showCheckBox(canvasId, jsonResult) { j = 4; // j为在div中插入的位置,div中依次为<span>,<br/>,<br/>,新增<br/>var parentItem = document.getElementById(canvasId).parentNode; // 获取到div var spaceDiv = document.createElement("div"); spaceDiv.innerHTML = "<br/>"; parentItem.insertBefore(spaceDiv,parentItem.childNodes[3]); // 新增<br/>到div for (i = 0; i < jsonResult.length; i++) { name = "cb" + (i + 1); cb = document.createElement("input"); cb.type = "checkbox"; cb.id = name; cb.checked = true; cb.onclick = fReShowRGraph; // 添加onclick事件 cb.value = 1; name = "lb" + (i + 1); lb = document.createElement("label"); lb.id = name; lb.innerHTML = jsonResult[i].DataTitle; parentItem.insertBefore(cb, parentItem.childNodes[j++]); // 插入checkbox parentItem.insertBefore(lb, parentItem.childNodes[j++]); // 插入label } showRGraph(canvasId, jsonResult, null); }
function fReShowRGraph() { id = arguments[0].target.id; // 获取checkbox id var cb = document.getElementById(id); // 是否勾选 if (cb.value == 1) { cb.checked = false; cb.value = 0; } else if (cb.value == 0) { cb.checked = true; cb.value = 1; } var div = arguments[0].target.parentElement; // 由于div id依次为div1,div2...line id也为line1,line2...故通过div的index值找到是哪个line index = div.id.substring(3); var datas = eval("line" + index + "JsonObj"); // eval(obj) var sourceDatas = new Array(); // 若无此行,每次datas改变会影响源数据,导致只能越变越少,而不是从头再来 var colorIndexs = new Array(); // 颜色数组,保存线条颜色 for (var i = 0; i < datas.length; i++) { name = "cb" + (i + 1); try { if (document.getElementById(name).value == 1) { sourceDatas.push(datas[i]); colorIndexs.push(i); } } catch (e) { } } lineId = "line" + index; line = document.getElementById(lineId); showRGraph(lineId, sourceDatas, colorIndexs); }
显然其中showGRaph(canvasId, jsonResult, colorIndexs)是关键,上述第一段代码向每个div插入checkBox而已,值得注意的是插入位置的选取,以及value值决定checkBox是否勾选(汗,年少无知),另外给checkBox设置了onclick事件,具体的即为第二段代码
第二段代码中eval()函数是一个强大的功能(又一次年少无知),详细介绍可参见http://www.w3school.com.cn/js/jsref_eval.asp, 上述第二段代码中eval使用基于反射机制,获取到一个json对象
你懂得,下次详细介绍showRGraph(canvasId, jsonResult, colorIndexs)
相关文章推荐
- Web : 使用RGraph(HTML5)绘制折线图(三)
- Web : 使用RGraph(HTML5)绘制折线图(四)
- Web : 使用RGraph(HTML5)绘制折线图(一)
- 使用HTML5 RGraph插件绘制统计图 绘制不同颜色的柱状图
- 使用html5 Canvas绘制线条(直线、折线等)
- 使用HTML5 RGraph插件绘制统计图 绘制分组柱状图
- Web前沿—HTML5 Form Data 对象的使用
- Web流程图绘制使用raphael
- HTML5 Web存储的localStorage和sessionStorage的使用方法
- 【HTML5初探之绘制图像(下)】看我canvas元素引领下一代web页面
- 【Android开源框架】使用andbase开发框架实现绘制折线图
- 使用HTML5和CSS3创建现代Web站点
- 【转】使用DevExpress的WebChartControl控件绘制图表(柱状图、折线图、饼图)
- Web 前沿——HTML5 Form Data 对象的使用
- HTML5之SVG 2D入门2—图形绘制(基本形状)介绍及使用
- 使用jQuery、Yahoo API和HTML5的geolocation来开发一个天气预报web应用
- HTML5 Web Database 数据库的SQL语句的使用方法
- VS2010 使用TeeChart画图控件 - 之二 - 绘制图形(折线图,柱状图)
- Web移动应用的未来:使用HTML5和CSS
- 使用 HTML5 WebSocket 构建实时 Web 应用