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(); 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') {
            $(".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 总是 3,因为您在循环内重置 x 。

于 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 回答