更改javascript函数的代码

时间:2012-10-15 19:49:07

标签: javascript

实际上我的想法如下:我有一个div标签,它在脚本标签内显示一个名为“afficher_general()”的函数的结果,以及一个调用第一个名为“Ajouter_general()”的函数的按钮,该函数应该是更改函数“afficher_general()”

中的字符串
var general = document.getElementById("general");
general.innerHTML = general.innerHTML.replace('//WRITE', ch);

按钮如下:

<input type="button" value="ajouter au graphe general" id="id1" onClick="Ajouter_general();afficher_general();" />

但这似乎不起作用,因为我被告知脚本只加载一次而且无法更改。那么有什么解决方案吗?提前谢谢。

所以我将添加包含这些功能的内容。其实我正在和Amcharts合作。功能afficher_generalis如下:

<script name="general" id="general" type="text/javascript">
    function afficher_general()
    {

                    chart = new AmCharts.AmSerialChart();
                    chart.dataProvider = chartData;
                    chart.categoryField = "country";
                    chart.startDuration = 1;                
                    // WRITE
                    chart.write("chartContainer");


    }
</script>

而不是注释// WRITE我想在每次按下按钮时添加代码。功能如下:

function Ajouter_general(ind){
var ch="";
var couleur = getSelectValueId("background-color"+ind);
var transparence = getSelectValueId("transparence"+ind);
var type = get_radio_value_type(ind);
var balloon = getSelectValueId("balloon-color"+ind);
if(type == "column")
                {
                ch=ch+"var graph"+ind+" = new AmCharts.AmGraph();";
                                ch=ch+"graph"+ind+".valueField = "+"visits"+";"
                ch=ch+"graph"+ind+".balloonColor = "+balloon+";";
                                ch=ch+"graph"+ind+".type = "+type+";";
                                ch=ch+"graph"+ind+".fillAlphas = "+transparence+";";
                ch=ch+"graph"+ind+".fillColors = ["+couleur+"];";
                ch=ch+"graph"+ind+".lineColor = ["+couleur+"];";
                ch=ch+"chart.addGraph(graph"+ind+");";
                ch=ch+"// WRITE";
                }
var general = document.getElementById("general");
general.innerHTML = general.innerHTML.replace('//WRITE', ch);
}

由于Amcharts使用脚本在图表中绘制图形,我希望能够每按一次按钮动态添加这些图形。

1 个答案:

答案 0 :(得分:0)

如果您确实需要更改函数的定义,您可以随时重新定义它(函数只是分配给变量的对象):

var Ajouter_general = function () {
    // redefine the afficher_general function
    afficher_general = function () {
        // change it to whatever you want
    };
};

话虽这么说,这通常是一种不好的做法,使用函数参数可以更好地完成相同的功能。