0

私は jquery スライダーを使用しています。コンテンツ用に単一のレイアウトと中央の div があります。別のページをスライドしているときに、レイアウトの色を変更する必要があります。これは私がasp.net mvc3を使ってやっていることです。

HTML:

    <div id="iPhone_Product">
            <div class="slides_containeriphone" >
                @if (Model == null)
                {
                    <div class="animateriphone" id="1" title="iphone">

                        @Html.Partial("`enter code here`_iPhone_Main")

                    </div>
                        <div class="animateriphone" id="2" title="salah">
                        @Html.Partial("Salah")
                    </div>
                        <div class="animateriphone" id="3" title="tasbeeh">
                        @Html.Partial("_Tasbeeh")
                    </div>
                }
                else
                { 
                    foreach (string s in Model)
                    {
                        <div class="animateriphone">
                            @Html.Partial(s);
                        </div>
                    }
                }

            </div>
        </div>

Javascript: function color_change() { var ids = new Array(); ID[0] = '1'; ID[1] = '2'; ID[2] = '3';

            for (var item = 0; item < ids.length; item++) {
                var x = document.getElementById(ids[item]);
            }

        if (x.id == '1' && x.title=='iphone') {
            $(".st_tabs_container").css({ "background-color": "#c8c7c7" });

            }
            else
                if (x.id == '2' && x.title == 'salah') {
                    $(".st_tabs_container").css({ "background-color": "yellow" });
                }
                else
                    if (x.id == '3' && x.title == 'tasbeeh') {
                        $(".st_tabs_container").css({ "background-color": "#c8c7c7" });
                    }
                }
      $(document).ready(function () {
    color_change();
    });

この JavaScript を使用して背景を変更しましたが、機能していません。

4

4 に答える 4

0

IDを正しく呼び出していないことを確認してください。これを試してください:

<div class="animateriphone" id="id2" title="salah">  

var x = document.getElementById('id'+ ids[item]);
于 2012-10-30T12:10:45.630 に答える
0

問題は、IDに数字を使用していることだと思います。ID 値を文字で始めてみてください。ID の前に id1、id2 などのプレフィックスを付けることを検討する必要があると思います。

また、for ループを閉じるのが早すぎます。if/else ロジックもすべて入れ子にします。

于 2012-10-30T12:11:24.553 に答える
0

ループ内で x をリセットしているので、x は常に 3 になるわけではありません。

于 2012-10-30T12:12:14.093 に答える
0

何もせずにすべての要素をループしているため、何をしようとしているかによっては、if ステートメントを for ループに移動するか、xから適切な方法で使用する必要がある場合があります。 forループ内。

あなたが何を達成したいのか完全にはわかりませんが、あなたがやろうとしていると私が信じていることをまとめました: http://jsfiddle.net/ZuzTU/1/

function color_change() { 
    var ids = new Array(); ids[0] = '1'; ids[1] = '2'; ids[2] = '3';
    for (var item = 0; item < ids.length; item++) {
        var x = document.getElementById(ids[item]);

        if (x.id == '1' && x.title=='iphone') {
            $("#" + x.id).css({ "background-color": "#c8c7c7" });

        }
        else if (x.id == '2' && x.title == 'salah') {
            $("#" + x.id).css({ "background-color": "yellow" });
        }
        else if (x.id == '3' && x.title == 'tasbeeh') {
            $("#" + x.id).css({ "background-color": "#c8c7c7" });
        }
    }
}        
$(document).ready(function () {
    color_change();
});​
于 2012-10-30T12:12:20.017 に答える