簡體   English   中英

使用flot動態添加圖表

[英]Adding charts dynamically with flot

我正在運行以下代碼。 該按鈕基本上將圖表添加到html頁面中。 我面臨的問題是:當我第二次單擊該按鈕時,前一個圖表的曲線逐漸消失(盡管標簽沒有),我希望它保持不變。 我嘗試調試,當我在buttonClicked javascript函數開始時修改innerHTML屬性時,就會發生這種情況。 誰能告訴我為什么會這樣嗎?

<html>
<head>
<title>Configurando gráficos</title>
<script language="javascript" type="text/javascript" src="../scripts/jquery.js"></script>
<script language="javascript" type="text/javascript" src="../scripts/jquery.flot.js"></script>
<script type="text/javascript" language="javascript">

var id = 0;

function requestGraph(placeholder) {
  $.ajax({url: "../requests/get_xml_oid.php?oid=1.3.6.1.2.1.2.2.1.10.65540&host=200.234.199.161", success: function(request){
        // Initialize dataToDraw to an empty array
        var dataToDraw = [];

        // The first tag is called ifInOctets      
        var ifInOctetsEl = request.getElementsByTagName("ifInOctets")[0];

        // Store the data element, to loop over the time-value pairs      
        var dataEl = ifInOctetsEl.getElementsByTagName("data");

        // For each data element, except the first one
        var i;
        for (i=1; i<dataEl.length; i++){
            // get the time-value pair
            var timeEl = dataEl[i].getElementsByTagName("time")[0];
            var valueEl = dataEl[i].getElementsByTagName("value")[0];
            var time = timeEl.textContent;
            var value = valueEl.textContent;

            // get the value of the former data element
            // Warning: the former value in the XML file is newer than the latter
            var formerValueEl = dataEl[i-1].getElementsByTagName("value")[0];
            var formerValue = formerValueEl.textContent;

            // push to the dataToDraw array
            dataToDraw.push( [parseInt(time)*1000, parseInt(formerValue) - parseInt(value)]);

        }

        // tell the chart that the x axis is a time variable
        var options = {
            xaxis: { mode: "time"}
        };

        // plot the chart and place it into the placeholder
        jQuery.plot(jQuery(placeholder), [dataToDraw], options);

      }});
}
function buttonClicked() {
    document.getElementById("body").innerHTML += "<div id=\"placeholder" + id + "\" style=\"width:600px;height:300px;\"></div>";
    requestGraph("#placeholder" + id);
    setInterval("requestGraph(\"#placeholder" + id + "\")",60000);
    id = id + 1;
}

</script>
</head>
<body id="body">
<button type="button" onClick="buttonClicked()">Click Me!</button>
</body>
</html>

根據先前的問題 ,分配給innerHTML會破壞子元素。 我尚不清楚這正是您所看到的,但是按照類似問題中的建議使用document.createElement可能也對您有效。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM