zoukankan      html  css  js  c++  java
  • 【京东详情页】——原生js爬坑之二级菜单

    一、引言

    做京东详情页仿写的时候,要用原生js实现顶部菜单的二级菜单显示与隐藏事件的触发。

    过程中遇到了一个坑,在这里与大家分享。要实现的效果如下:

       

    二、坑

    谁触发事件?显示、隐藏二级菜单      a?

     

    如果绑给a

     

    查找a   怎么查?

     

    选择器  怎么写?

     

    调试  看是否找到全部a ,找到的是不是自己想要的a区域。

            

    遍历a,添加事件

       

     

    用上了this,当“鼠标移入”a时,触发showSub事件。因为前面showSub已经定义好了,所以不用再写function了。此处,“鼠标移入”为事件一,添加事件监听事件一,触发事件二。事件二,即为shouSub显示事件。

     

    三、坑的问题

    当鼠标移出a区域时,已经触发了mouseout事件,二级菜单就会隐藏。用户无法停留在二级菜单继续操作。所以,以后这样的二级菜单事件不要绑定在a上。

     

    四、解决方法

    绑定事件在li上,因为a和a旁边的二级菜单都在li里边。 进入这两个区域,都属于mouseover。所以,以后像这种鼠标进入事件,就要绑定在父元素上。

     

    改为绑定li之后:

       

          

    五、留存问题

    现在还是有一个小坑:在选择鼠标移入二级菜单之后,a的hover就不在了。

       

     

    解决方法:查找到li的第一个子元素a,为其加上className="hover"。

           

     

    注意一点:在css中“:hover”是伪类,是给浏览器看的,js不认。

     

    解决方法:在“:hover”旁边,用逗号隔开一个一模一样样式的“.hover” 。                             


     注:转载请注明出处

                     

                    

           

  • 相关阅读:
    Community Server(CS)是一个非常优秀的Asp.net开源软件
    乐在其中设计模式(C#)
    VSTO+WinForm+WebService+WCF+WPF示例
    系出名门 Android 系列文章索引
    DataTable 和List 相互转换
    C#异步TCP通讯类库FlyTcpFramework
    WCF+BizTalk开发系列
    精通MVC 3 框架
    我对架构的理解
    DataTable转换成IList
  • 原文地址:https://www.cnblogs.com/ljq66/p/7569550.html
Copyright © 2011-2022 走看看