今天无聊写了个二级导航栏,发现了一个以前根本没注意的问题,那就是mouseleave的事件。故记录在此,菜鸟飘过。

创新互联长期为1000+客户提供的网站建设服务,团队从业经验10年,关注不同地域、不同群体,并针对不同对象提供差异化的产品和服务;打造开放共赢平台,与合作伙伴共同营造健康的互联网生态环境。为文安企业提供专业的成都网站设计、成都做网站、外贸网站建设,文安网站改版等技术服务。拥有十余年丰富建站经验和众多成功案例,为您定制开发。
二级导航栏的功能无非就是鼠标至于某标题上时,显示其若干子标题,离开某标题至于另外一标题时,显示对应的子标题并隐藏其他的子标题。还有,就是鼠标离开所有的标题或子标题时,应隐藏所有的子标题。
一开始便全用mouseover和mouseout事件处理,但发现鼠标离开所有的标题或子标题时,最后一次显示出的子标题没有被隐藏。body代码如下:
[html] view plaincopy
- main
- Autobots
- Optimus Prime
- Bumble Bee
- Ironhide
- Jazz
- Decepticons
- Megatron
- Shockwave
- Soundwave
- Starscream
CSS如下:
[css] view plaincopy
- .ul_list{ 
- width:200px; 
- float:left; 
- text-align:center; 
- padding:0; 
- position:relative;} 
- .li_list{ 
- list-style:none; 
- text-align:center; 
- background:#CCC; 
- height:40px; 
- line-height:40px; 
- font-size:18px; 
- font-family:黑体; 
- color:#000000; 
- cursor:pointer; 
- position:relative;} 
- .sub_li{ 
- list-style:none; 
- text-align:center; 
- background:#CCC; 
- height:40px; 
- line-height:40px; 
- font-size:18px; 
- font-family:黑体; 
- color:#000000; 
- display:none; 
- cursor:pointer; 
- position:relative;} 
JS如下:
[javascript] view plaincopy
- $(document).ready(function(e) { 
- $(".li_list").mouseover(function(){ 
- $(this).siblings(".sub_li").show("slow"); 
- $(this).parent(".ul_list").siblings(".ul_list").children(".sub_li").hide("slow"); 
- }); 
- $(".ul_list").mouseout(function(){ 
- $(this).children(".sub_li").hide("slow"); 
- }); 
- $(".sub_li").mouseover(function(){ 
- $(this).css({"border-top":"1px #FFFFFF solid", 
- "border-bottom":"1px #FFFFFF solid"}); 
- }); 
- $(".sub_li").mouseout(function(){ 
- $(this).css("border", "none"); 
- }); 
- }); 
试了一些方法也不行,后来把上述第二项的mouseout事件改为mouseleave则可以,查了资料,mouseout是不论鼠标指针离开被选元素或其子元素,都被触发;而mouseleave是只有在鼠标指针离开被选元素时,才触发。
网页标题:jquery之二级导航栏中mouseleave与mouseout的应用
文章网址:http://www.scyingshan.cn/article/popcsg.html

 建站
建站
 咨询
咨询 售后
售后
 建站咨询
建站咨询 
 