0

実際、私の考えは次のとおりです。スクリプトタグ内に「afficher_general()」と呼ばれる関数の結果を表示するdivタグと、文字列を変更することになっている「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 の代わりに、ボタンが押されるたびに a コードを追加したいと考えています。機能は次のとおりです。

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 はスクリプトを使用してチャート内にグラフを描画するため、ボタンが押されるたびにこれらのグラフを動的に追加できるようにしたいと考えています。

4

1 に答える 1

0

関数の定義を本当に変更する必要がある場合は、いつでも再定義できます (関数は、変数に割り当てられた単なるオブジェクトです)。

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

そうは言っても、これは一般的に悪い習慣であり、関数パラメーターを使用することで同じ機能をより適切に実現できます。

于 2012-10-15T19:55:25.460 に答える