0

我想突出显示当前页面。尝试了此代码但无法正常工作..任何帮助将不胜感激和感激..

$(function() {
    $("#site-menu li a").click(function() {
        $(".current").removeClass("current");
        //"this" is the element clicked on
        $(this).addClass("current");
    });
});​

<div id="menu">
     <ul id="site-menu">
          <li><a href="Home_Page.aspx">home</a></li>
          <li><a href="Services.aspx">services</a></li>
          <li><a href="About_Us.aspx">about us</a></li>
          <li><a href="Contact_Us.aspx">contact us</a></li>
     </ul>
</div>
4

4 回答 4

2

我认为你应该从这个开始:

$(function() {
    var curPage = location.pathname.substring(location.pathname.lastIndexOf("/") + 1);
    $("#site-menu li a[href='" + curPage + "']").addClass("current");
});​

当它没有出现在 URL 中时,只需改进此脚本以使其与默认页面(我认为它将是 Home_Page.aspx)一起正常工作。

于 2012-10-03T20:49:35.813 回答
0

试试这个

$(function() {
    $("#site-menu li a").click(function(e) {
        e.preventDefault();
        $(".current").removeClass("current");
        //"this" is the element clicked on
        $(this).addClass("current");
    });
});​

还要确保你的 CSS FIDDLE中有.current类

当我使用 e.preventDefault(); 时似乎正在工作。

也许该类在回发时被渲染回默认 HTML ..

于 2012-10-03T20:34:13.157 回答
0

我在这里创建了一个小提琴,展示了一个工作示例。

http://jsfiddle.net/psDBP/

试试这个(也见我的评论):

$(function() {
    // change to on rather than deprecated click
    $("#site-menu li a").on("click", function(e) { 
        e.preventDefault(); // stops the a href firing
        $(".current").removeClass("current");
        //"this" is the element clicked on
        $(this).addClass("current");
    });
});​
于 2012-10-03T20:37:28.507 回答
-1

你也可以试试

    $("#site-menu li a").live('click',function() {
        $(".current").removeClass("current");
        //"this" is the element clicked on
        $(this).addClass("current");
    });

在你的里面$(document).ready(function(){})

于 2012-10-03T20:45:45.267 回答