刚开始是这个效果
鼠标点击之后变成了这个效果
要保证实现 a 标签点击链接一个新的网址 同时也要保证效果达到 我目前写的网站代码 可以下载http://115.com/file/c2zlhblv 看看
闭关修行中......
感谢所以回答问题的人。 比较好的办法是使用url传参数,然后根据参数判断是否有必要显示class
但是更好的办法是下面这段JS
$('ul.main-menu li a').each(function(){ if($($(this))[0].href==String(window.location)) $(this).parent().addClass('active'); });
详情:用jquery实现菜单导航给当前页面一个样式/
利用window.location.href增加一个判断是否为当前页的代码应该是可以做到的吧 不过感觉还是用后台代码写比较爽一点
一般来说这个还是怡红公子所说的由后台写入current后再处理比较合理。
必须要求纯前台实现的话,页面载入后需要做一次判断来决定是否对指定按钮展开/高亮。 要么用判断当前地址的方式,用地址来匹配需要处理的按钮;要么在按钮点击事件中添加把本按钮的id写到cookie里的操作函数。 前者突出“当前页”这一概念逻辑,但需要在js中额外维护一份地址-按钮对应表或对应规则。 后者就不是当前页的概念了,就是纯粹的指示,但是对禁止cookie的浏览器就无奈了。
常规的做法还是对比地址比较多,特别是按钮id与地址之间的对应关系比较简单的话。 比如 1.html -> id="btn1" 之类的……
1. 用ajax加载内容页面 , 同时打开菜单 .. 就是说页面不跳转 2. 用iframe显示内容也 , 同样页面不跳转 3. 在页面中控制 链接的样式 , 比如当前页面 是业务报表页面 , 那么就控制这个菜单 的class 为 active...类似这样吧
出个下下策: 修改addClass/removeClass等系列函数,把每次操作计入cookie,到新的页面读取cookie,把所有操作再做一遍……
iframe吧
a标签中的链接做一下处理呗,例如 /content.html ==> /content.html?tab=1
这个参数对后台没有用,但是会留在地址栏里,用window.location.href可以取到 在页面加载的过程中解析url,看看有没有tab的参数,有就addClass
鼠标点击之后修改url增加个参数¤tMenu=当前菜单的id,刷新时再判断处理
这个可以用jquery的cookie保存当前填写的需要设置的状态,然后在加载完根据cookie设置即可
感谢所以回答问题的人。 比较好的办法是使用url传参数,然后根据参数判断是否有必要显示class
但是更好的办法是下面这段JS
详情:用jquery实现菜单导航给当前页面一个样式/
利用window.location.href增加一个判断是否为当前页的代码应该是可以做到的吧
不过感觉还是用后台代码写比较爽一点
一般来说这个还是怡红公子所说的由后台写入current后再处理比较合理。
必须要求纯前台实现的话,页面载入后需要做一次判断来决定是否对指定按钮展开/高亮。
要么用判断当前地址的方式,用地址来匹配需要处理的按钮;要么在按钮点击事件中添加把本按钮的id写到cookie里的操作函数。
前者突出“当前页”这一概念逻辑,但需要在js中额外维护一份地址-按钮对应表或对应规则。
后者就不是当前页的概念了,就是纯粹的指示,但是对禁止cookie的浏览器就无奈了。
常规的做法还是对比地址比较多,特别是按钮id与地址之间的对应关系比较简单的话。
比如 1.html -> id="btn1" 之类的……
1. 用ajax加载内容页面 , 同时打开菜单 .. 就是说页面不跳转
2. 用iframe显示内容也 , 同样页面不跳转
3. 在页面中控制 链接的样式 , 比如当前页面 是业务报表页面 , 那么就控制这个菜单 的class 为 active...类似这样吧
出个下下策:
修改addClass/removeClass等系列函数,把每次操作计入cookie,到新的页面读取cookie,把所有操作再做一遍……
iframe吧
a标签中的链接做一下处理呗,例如 /content.html ==> /content.html?tab=1
这个参数对后台没有用,但是会留在地址栏里,用window.location.href可以取到
在页面加载的过程中解析url,看看有没有tab的参数,有就addClass
鼠标点击之后修改url增加个参数¤tMenu=当前菜单的id,刷新时再判断处理
这个可以用jquery的cookie保存当前填写的需要设置的状态,然后在加载完根据cookie设置即可