0

我有一个 AJAX 调用,它提供生成 jQuery 绘图的数据。每次运行此 AJAX 调用时,都会返回新的 JSON 数据并自动更新绘图。

除了绘制 JSON 数据之外,还有一些代码可以创建一个按钮,该按钮使用ConvertOrSave.appendChild(btn);. 此代码的唯一问题是每次进行 AJAX 调用时,都会附加一个新的 btn。应该只需要一个按钮。

确保在添加新按钮之前删除前一个按钮的最佳方法是什么?谢谢。这是代码:

$("#flotAverageSalePricesCity").result(function(event, data, formatted) {
if (data){
    $.ajax({ 
        url: sURL + "utility/ajaxmuniChart1c",
        type: "POST",
        data: {muni: data[0]},
        dataType: 'json',               
        success: function(json){
            if  (data) {                    
                myWidth =  (document.getElementById('flot_widget').offsetWidth-45)+"px";
                myHeight = (document.getElementById('flot_widget').offsetWidth*.66)+"px";
                document.getElementById('wrapper').style.display = 'block';                 
                document.getElementById('printflotcontainer').style.display = 'block';
                document.getElementById('flotcontainer').style.width = myWidth;
                document.getElementById('flotcontainer').style.height = myHeight;
                var options = {
                    series: {
                        lines: { show: true, fill: false, fillColor: "rgba(255, 255, 255, 0.8)" },
                        points: { show: true, fill: true }
                    }                       
                }; 

                $.plot("#flotcontainer", [json], options);
                myCanvas = $('#flotcontainer').find('canvas.base');       
                flotcontainercanvas = myCanvas.get(0);
                ctx3 = flotcontainercanvas.getContext('2d');
                myLocation = sURL + 'php/saveme.php';
                var cs = new CanvasSaver(myLocation)
                var btn = cs.generateButton('Save', flotcontainercanvas, 'PTS_Chart');                  
                ConvertOrSave.appendChild(btn);
            }
        }
    })
}
})

编辑:这是唯一的元素ConvertOrSave

<div id="ConvertOrSave" class="g2">
        <button id="convert">convert</button>
</div>
4

3 回答 3

1

您可以删除现有按钮:

var btn = document.getElementById('convert');
if (btn != null){
   btn.remove();
}

检查这个小提琴这将删除现有的按钮。我希望这能帮到您。

于 2013-10-10T04:53:49.337 回答
1

由于 convertAndSave 中只有一个其他元素,因此您可以通过添加 convert 和新按钮来避免附加重复项......(如果有意义的话)

var convert = document.getElementById('convert');
ConvertOrSave.innerHTML = convert + btn;
于 2013-10-10T04:44:59.640 回答
1

您可以在添加新按钮之前删除现有按钮:

var btn = document.getElementById('convert');
btn && btn.parentNode.removeChild(btn);

在这里看到它:http: //jsfiddle.net/F3Uxa/

于 2013-10-10T04:49:19.753 回答