1

私は2つの配列を持っています。1つは16進数のインデックスと色(#なし)で、もう1つは対応するインデックスとエクササイズのタイプです。

それによって私が達成しようとしているのは、スケジュールを生成することです。これは、指定されたエクササイズタイプを含むdivに、クラス「ExerciseType」+配列からのエクササイズのインデックスを追加します。これは、たとえば「ExerciseType0」または「ExerciseType1」のようなものです(これを実行して機能させます)。次に、jQueryを使用して、インデックスに対応するクラスを持つdivの背景色を変更しようとしています。

そのために、関数$ ColorIndexを作成しようとしました。これは、キーとしてのインデックスの配列と、値としての16進数の色です。ExerciseType0などは、以前はスタイル設定されていませんでした。

<script type=\"text/javascript\" src=\"jquery-1.8.2.js\"></script>
<script type=\"text/javascript\">
    $(document).ready(function(){
        var ColorIndexJS = <?php echo json_encode($ColorIndex) ?>;
        var ColorIndexLength = ColorIndexJS.length;
        var counter = 0;
        while(counter<ColorIndexLength){
            $('.ExerciseType' + counter.toString()).css("background-color", "#"+ColorIndexJS[counter]);
            counter++;
        }
    });
</script>

私がfirebugでこのコードから得た結果は

$(document).ready(function(){
var ColorIndexJS = ["FF4040","EEC591","FF7F24"];
var ColorIndexLength = ColorIndexJS.length;
document.write("ExerciseType");
var counter = 0;
while(counter<ColorIndexLength){
$('.ExerciseType' + counter.toString()).css("background-color", "#"+ColorIndexJS[counter]);
counter++;
}
}); 

ここに見られるように、php_arrayは正常に変換されますが、関数自体は機能したくないだけです。何か案は?

4

2 に答える 2

1

PHPにCSSクラスを書き出させて、JavaScriptを一切使用しないのはなぜですか?

<style>
    .ExerciseType0{background-color:#FF4040;}
    .ExerciseType1{background-color:#EEC591;}
    .ExerciseType2{background-color:#FF7F24;}
</style>

コードが失敗する理由はdocument.writeです。これは、ドキュメントの読み込み後に発生するため、ページのコンテンツを置き換えます。

于 2012-11-02T12:58:09.257 に答える
0

document.writeあなたのjsコードはあなたのコードを上書きしているように見えるので正しいです。

DEMOでコメントdocument.writeを外してみてください。そうすれば、私が何を意味していたかがわかります。

于 2012-11-02T13:00:43.107 に答える