0

我需要动态 assenare 类“活动”来管理某些链接的样式。我有这个代码但不起作用..

<script type="text/javascript" language="javascript">  
function locationPathname(){  

    var path = window.location.pathname.split('/');
    path = path[path.length-1];
    alert(path);
    if (path !== undefined) {
    $('livello2 a[href="/' + path + '"]').addClass('active');
  }
    }
 </script>

和html:

 <div class="livello2">
                 <div class="live">
                     <a href="./Live.php"><img src="live_off.png"></a>
                 </div>
                 <nav class="menu">
                     <ul>
                         <a href="./index.php" ><li>HOME</li></a>
                         <a href="./Concerti.php"><li>CONCERTI</li></a>
                     </ul>
                 </nav>
       </div>

CSS:

.active{background-color:red}

有人有什么建议或看到了吗?

4

3 回答 3

1

在您的 JS 中,您可以这样做:

$('.livello2 a[href="/' + path + '"]')

(假设您在选择器的开头添加了那个点)将被转换(在计算path变量之后)成类似的东西

$('.livello2 a[href="/Concerti.php"]')

但是代码中的实际 href 属性以.(点)开头,例如

href="./Concerti.php"

所以你需要将上面的 JS 片段更新为

$('.livello2 a[href="./' + path + '"]')
于 2012-11-30T11:46:47.153 回答
0

替换这个

$('livello2 a[href="/' + path + '"]')

有了这个

$('.livello2 a[href="/' + path + '"]')
于 2012-11-30T11:24:44.187 回答
0

除了@Murali Prasanth 关于在您的 JS 片段中添加点的答案之外,我建议确保您的 javascript 块在 close 之后立即放置</body>。如果它在其中,它就不会工作,因为页面还不知道.livello2——它还没有被加载。所以,要么在关闭之前放置 JS,要么</body>像这样包装你的 javascript 代码:

<script type="text/javascript" language="javascript">  
    $(document).ready(function () {
        function locationPathname(){
        …
        }
    });
</script>
于 2012-11-30T11:31:55.177 回答