网上找的代码,但是二级菜单亮的同时对应的父级菜单就不亮了,我补充了一点,但是点击二级菜单只有第一个父级菜单高亮,与二级菜单对应的没高亮。怎么用$(this)使得点击每个子菜单,对应的父级菜单也会亮。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
研究了一晚上做出来了,我的思路是在子菜单拥有当前样式cur的基础上,再给父级菜单的a元素加上当前样式。用if判断当前的子菜单是否拥有cur样式,如果有,就给当前父级菜单a元素加上cur样式。第一次尝试的判断不明确,始终加的是第一个名为second的父级菜单,应该用$this。于是就遍历拥有二级菜单的子菜单,取得当前拥有cur样式的子菜单,把当前父栏目的同胞为a的元素,也就是父级菜单的样式添加为cur,这样一来就好了。上面的id重复了,改成class,多谢下面的兄台提醒,但是为什么谷歌浏览器没有报错?
扩展:若是三级菜单,使得点击三级菜单的子栏目高亮的同时父级栏目一级和二级也高亮,该如何做呢?思路是什么呢?
不是很懂你说的高亮是什么意思。想呈现的效果是是,鼠标放到一级菜单,然后出现下拉菜单,然后鼠标放到下拉菜单,然后又出现子菜单。鼠标停留的菜单要变色么(高亮)? 如果是这个意思,css 也可以实现。用jQuery 就是事件绑定啊。
这个html写法本身就有问题id=first-menu就有两个.
另外,这类方法直接用css就可以了,比如li:hover的时候高亮父类