jquery li onclick 添加类

标签 jquery css

我的母版页中有一个菜单。

 <ul>
    <li><a href="."><span>Home</span></a></li>
    <li><a href="contactus.aspx"><span>contact us</span></a></li>
 </ul>

当我点击菜单项时,我想使用jquery设置css类

 $(function () {

            $("li:first-child").addClass("test");
            $('li').click(function () {
                $(this).addClass('test');

            });
        });

CSS

 .test {background-color:Red;}

单击菜单时,它显示背景颜色,但随后消失。在单击其他菜单之前,如何让它保持事件状态?

谢谢

最佳答案

更新 2:这不是 javascript 问题

<li><a href="#"><span <%=ServerSizeLogic.SelectedMenu("Home")%>>Home</span></a></li>

根据您的服务器端技术,这是对服务器端可能如何处理的令人讨厌的猜测。 ServerSizeLogic.SelectedMenu("Home") 或您使用的任何内容都会返回空字符串或“class='test'”。只需确保只有一个 li 元素获得样式并删除客户端代码

// don't do it like this but hopefully you get the gist
ServerSizeLogic::SelectedMenu(string item){
    if (item == CurrentPage)
      return "class='test'";
    return "";
}

更新:很明显,一旦您离开页面,您想要选择的元素将必须来自服务器(除非您使用的是 ajax),其中转换只是摆脱 li:first- child 并直接在当前 li 元素的 View 代码中设置类

原文: 这个 fiddle 怎么样http://jsfiddle.net/LmUrP/

 $(function () {

        $("li:first-child").addClass("test");
        $('li').click(function () {
            $('#menu li').removeClass('test');
            $(this).addClass('test');
        });
    });​

html

<ul id='menu'>
  <li><a href="#"><span>Home</span></a></li>
  <li><a href="#"><span>contact us</span></a></li>
  <li><a href="#"><span>apples</span></a></li>
  <li><a href="#"><span>bananas</span></a></li>
</ul>​

关于jquery li onclick 添加类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11942731/

相关文章:

html - 我怎样才能让 bootstrap 将这个呈现的 django 模板居中?

javascript - Codeigniter:提交错误时页面背景不会加载

asp.net - 列表未在 DIV 元素中正确显示

javascript - fullPage.js 滚动到固定标题

jquery - 如何使用 jQuery 检查 DOM 是否相等?

html - Bootstrap 4 - 如何使侧边栏与响应式正方形保持相同的高度?

css - 边距不适用于子 div

javascript - jquery - 对象...没有方法 'css'

javascript - Jquery FullCalendar 延长开始日期或结束日期

jquery - 看到按钮有一个有趣的效果