如何在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,也可以将其留空
在问题区域中,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');
- 使用“application / json;将ajaxpost发送到mvc; charset = utf-8“从vs web开发人员服务器返回错误500
- 如何将JQUERY Datatables内容提供给MVC Controller
- Ajax Request使用POST使用MVC和$ .ajax调用返回HTTP错误500?
- 通过CSS将ValidationSummary与一个框包围在一起
- 在JQueryUI选项卡选项上加载ASP.NET MVC局部视图
- 如何将表单数据发送到控制器以生成在Db中保存数据的ajax请求
- 如何在AJAX JSON调用后关闭jQuery对话框
- 在客户端通过多个组条件过滤jqGrid
- ASP.NET MVC客户端validation与部分视图和Ajax