如何在ASP .NET MVC中使用jquery将css类应用于html元素?

我正在尝试实现一个选项卡菜单,就像Stack Overflow中的那个一样。 我创建了一个HTML列表,并将其设置为使用CSS看起来像标签菜单。 我把HTML列表放在母版页上。 现在,如果用户单击列表,您如何更改列表的颜色?

例如,如果单击“堆栈溢出”“用户”选项卡菜单,它将重定向到“用户”索引视图,然后将选项卡菜单的颜色更改为橙​​色。 我该如何实现这一目标?

你不应该也不应该使用Jquery。 原因是你的描述没有明确的理由来实际使用Javascript。

您需要在母版页上执行的操作是将当前页面按钮的类动态设置为:

  • Home
  • Users
  • ...

    您可以通过访问找到当前的URL

     Request.Url 

    然后只需创建一个CSS类来显示更改

    这里不需要javascript。 我也喜欢JQuery,但人们常常尝试找借口使用它,而不是使用简单易用的解决方案。 记住不是每个人都可以使用Javascript

    您可以使用以下函数来添加/删除类:

     $("#MyElement").addClass(classname); $("#MyElement").removeClass([classname]); $("#MyElement").toggleClass(classname); 

    您可以将参数传递给removeClass,也可以将其留空

    http://docs.jquery.com/Attributes/toggleClass

    问题区域中,SO上的顶级导航的HTML源代码如下所示:

      

    注意youarehere类附加到包含Questions文本的li元素。 该类背后的CSS定义将“按钮”变为橙色。 您可以通过主页中的服务器代码添加youarehere类(或其项目的等效类),或者像James Wiseman所指出的那样,通过浏览器中的jQuery添加。

    我不能说,但通常这样做的方式是为每个页面生成不同的HTML:

      

    class =“on”表示您所选标签的不同样式。 现在你真的不想为每个页面执行此操作,因此您可以将它放在主页中,如:

      

    然后在每个控制器操作中设置要选择的选项卡的值,如:

     ViewData["CurrentTab"] = "Tab2"; 

    您可以在主页面中测试当前URL,但如果多个URL突出显示相同的选项卡,则此方法可以提供更多灵活性。

    我不认为需要客户端设置,但如果你需要像James Wiseman那样使用JQuery说:

     $("#Tab1").addClass('on'); // or $("#Tab1").removeClass('on'); // or $("#Tab1").toggleClass('on');