如何在Asp.Net中更改html元素(li)类
How to change html element ( li ) class in Asp.Net?
我有一个包含多个元素li
的列表ul
(其id为menu_
(,这些li
最初在类in-active
中,我希望当客户端单击一个li
时重定向到另一个页面,然后将该li
的CssClass更改为active
我尝试过这个JS代码,但没有成功,在客户端单击li
后,它没有重定向到另一个页面(它仍然在同一页面中(:
$(function () {
$('#menu_ li').click(function () {
$("li.active").removeClass("active");
$(this).addClass("active");
return false;
});
});
您可以在每个页面中执行此操作。
$("li.active").removeClass("active");
$( "ul#menu li:nth-child(n)" ).addClass("active");
将此代码保存在就绪事件中。
n是要将类添加到的li
的数目。
您在这里混合了服务器端/客户端功能。您的JS代码纯粹是客户端代码,它会正确地切换类,但具有return false;
意味着链接将不会被遵循,因此不会执行重定向(不会运行服务器端代码(。
您可以删除return false;
,然后类将被更改和将执行重定向,但一旦重定向完成,您就有了一个新页面,类更改将不会持续。
你基本上有三个选择:
-
在每个子页面中都有一个如Imadoddin-Ibn-Alauddin上面建议的JS代码,该代码负责在页面加载后将导航中的正确元素设置为活动。
-
以某种方式在请求之间保持状态,一旦添加了活动类,就将状态保存在cookie或本地存储中。然后,每次加载页面时,检查cookie/本地存储是否包含此类数据,并相应地更新状态。
-
更改服务器端导航的状态,以便在加载每个页面后,将活动类添加到相应的页面中。
我推荐选项3。
一句话:你不能像现在这样把事情搞混。返回错误的;将取消重定向。执行重定向后,将加载一个新页面,并重置导航,因此在执行重定向之前使用JS所做的任何更改都将消失。
相关文章:
- 我应该怎么做才能避免在网页上移动元素(html、css、jQuery)
- 更改元素HTML,但忽略最后一个子项
- 增加在选择元素HTML中搜索的时间
- Jquery无法获取元素html
- 从所选元素 html 上方的元素获取属性值
- 在 JS 的单选按钮元素 (HTML) 中使用 title 属性
- 如何在页面上播放每个音频元素(HTML,JQuery,Javascript)
- 我需要一种新的方法来检测元素 HTML 是否有更改
- 获取父元素 html 以及子内容
- AngularJS指令:如何在ng-repeat中动态更改元素html
- html 属性中的引号被标记为 ”来自元素.html()的结果
- 在指令's链接中替换angular元素html
- 如果元素有子元素html元素
- 如何下推表格中的元素- HTML
- 如何在纯javascript中使用变量插入数组值,如元素HTML
- jQuery textilate .js -如何“重置”元素HTML并重新启动动画
- 将元素HTML附加到新附加的textarea中
- 在添加类的情况下,CSS 3的过渡是否不能与模板元素(HTML 5)一起工作?
- jQuery没有更新DOM元素HTML
- 在jQuery中更快地替换元素HTML