关于html:JQuery在CSS中更改背景颜色的问题

Problem with JQuery changing background-color in CSS

我所拥有的是具有五个链接的基本导航。鼠标悬停时,导航栏具有背景图像和较深的阴影。我想做的是在每个页面的顶部添加一个jquery脚本,以将当前页面链接的颜色更改为悬停颜色...即。如果我在联系人页面上,导航栏上的联系人链接将是较深的颜色,因此很明显您在哪个页面上。到目前为止,我有这个:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
<ul>

   
<li>
Home
</li>

   
<li>
Reviews
</li>

   
<li>
Guestbook
</li>

   
<li>
About
</li>

   
<li>
Contact
</li>

</ul>

,然后在每个页面的顶部添加类似的内容(这里是review.html的内容)。

1
2
3
4
5
6
7
8
<head>
    <script src="jquery.js">
    <script type="text/javascript">
        $(document).ready(function () {
            $('#reviews').css("background-color","#6d7f45");
        });
   
</head>

但是它根本不起作用。我刚刚开始使用JQuery,因此可以肯定它很简单,但是我自己尝试了许多解决方案,但感到很困惑。

CSS:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
div.navigation {
    width: 950px;
    background-image: url('../images/navbg.png');
    letter-spacing:2px;
    height: 35px;
    background-color: #679847;
    text-transform:uppercase;
}

div.navigation ul {
    padding-right: 50px;
    padding-left: 50px;
    padding-top: 10px;
    list-style:none;
}

div.navigation li {
    display: inline;
    margin-left: 10px;
    margin-right: 10px;
}

div.navigation a {
    background-image: url('../images/navbg.png');
    text-decoration: none;
    padding: 8px;
    color: #FFFFFF;
}


div.navigation a:link {
    color:#FFFFFF;
    text-decoration:none;
}      /* unvisited link */

div.navigation a:visited {
    color:#FFFFFF;
    text-decoration:none;
}  /* visited link */


div.navigation a:hover {
    background-image: url('../images/navbg_hover.png');
    color:#FFFFFF;
    text-decoration:none;
    background-color: #6d7f45;
}  /* mouse over link */

div.navigation a:active {
    color:#FFFFFF;
    text-decoration:none;
}  /* selected link */


您发布的基本代码有效-请参见jfiddle

为例。正如Hailwood指出的那样,可能还会发生其他事情,并且需要更多信息。链接到您的页面将是最简单的。

自从解决了OPs问题以来,我添加了此代码段以使菜单的维护更加容易,使用页面url设置选择器,而不必像指示的那样手动更改每个页面上的代码:

1
2
3
4
5
6
7
8
9
10
11
12
<script type="text/javascript">
    $(document).ready(function () {
        var url = document.location.toString();
        var url_array = url.split("/");
        // get last item in array
        var last = url_array[url_array.length-1];
        $('.navigation a').each( function() {
          // if it matches
          if ($(this).attr('href').indexOf(last) != -1)
          $(this).css('background-color', '#6d7f45');
        });
    });

我们能为您的菜单看到一些CSS吗?

另外,我可能建议您使用

$(function(){})$(document).ready(function(){})

相反

我想我知道这是怎么回事,但我需要确定您的css来


是:

1
$('#reviews').css("backgroundColor","#6d7f45");