问答详情
源自:4-2 基于用户行为预测的切换技术

有没有人发现一个BUG

鼠标刚进入一级菜单还没碰到家用电器的时候,二级菜单就出现了。这个时候二级菜单是空的,怎么消除这个BUG啊

提问者:慕九州8359234 2017-12-14 03:19

个回答

  • 慕移动9181930
    2022-03-26 22:59:10

    test ==== gt; test lt;br/gt; testfixedie6

  • 浅芷初夏
    2018-12-26 03:18:52

    $(document).ready(function () {
       var sub = $("#sub");
    
       var activeRow, activeMenu;
    
       $("#test").on("mouseenter",function (e) {
           // sub.removeClass("none");
       }).on("mouseleave",function (e) {
           sub.addClass("none");
    
           if(activeRow){
               activeRow.removeClass("active");
               activeRow = null;
           }
    
           if(activeMenu){
               activeMenu.addClass("none");
               activeMenu = null;
           }
       }).on("mouseenter","li",function (e) {
           sub.removeClass("none");
           if(!activeRow){
               activeRow = $(e.target).addClass("active");
               activeMenu = $("#" + activeRow.data('id'));
               activeMenu.removeClass("none");
               return;
           }
    
           activeRow.removeClass("active");
           activeMenu.addClass('none');
    
           activeRow = $(e.target);
           activeRow.addClass("active");
           activeMenu = $("#" + activeRow.data('id'));
           activeMenu.removeClass("none");
       });
    });


  • 浅芷初夏
    2018-12-26 03:17:50

    这个其实也不算什么bug,你看到的空子菜单实际上就是它的padding造成的,你可以把padding这个css样式命令剥离出来,在鼠标移入li时addClass,移出li时removeClass。第二种方法比较简单,看图:

    https://img3.mukewang.com/5c2282330001de0f12240761.jpg

    把那行代码写过来

  • javren_撒野
    2018-07-31 13:26:13

    $("#text")包含内层的ul,还有li,,,进入ul还没进入li时,也会触发下面的.on("mouseenter",function(e){
    sub.removeClass("none")}),使得会出现#sub的样式,这个bug看着很难受,直接写成$("#text li")就行,让他进入Li触发,不过后面的事件委托的时候.on("mouseenter","li",function(e)前面就得加上$("#text")或者$("#text ul") 毕竟$("#text li")不能委托自己。小BUG完美解决。体验感好些了。

  • 小草66
    2018-01-11 18:35:57

    这是我的解决方案https://github.com/keyiwu/JD-Menu/releases/tag/1.1.1

  • 慕九州8359234
    2017-12-14 23:13:41

    还是不行,绑定li的话,离开一级菜单到二级菜单的时候,二级菜单会隐藏

  • 慕九州8359234
    2017-12-14 03:25:44

    我知道了,要绑定到li上

    $('#test li')