javascript - 单击其他元素时从子菜单项中删除事件类

标签 javascript jquery html css submenu

here is my fiddle:

$(function(){

    $('#nav li').on('click', function(){

        $(this).addClass('active').siblings().removeClass('active');
        $(this).find('.sub-menu').addClass('showMenu');

    });
    $('ul#nav > li').hover(function(){
        if ($(this).children('ul').length > 0){    
             $(this).find('.sub-menu').addClass('showMenu');
        }
    }, function(){ 
             $(this).find('.sub-menu').removeClass('showMenu');
    });

当您单击每个主 li 元素事件类时,您在 fiddle 中看到的方式是可以的,但是当您尝试单击其中一个子菜单项时,即使我正在单击其他 li 元素,它也会保持事件状态。

最佳答案

$(function(){

    $('#nav li').on('click', function(){

        $(this).addClass('active').siblings().removeClass('active');
        $(this).siblings().find('li').removeClass('active');//added
        $(this).find('.sub-menu').addClass('showMenu');

    });
    $('ul#nav > li').hover(function(){
        if ($(this).children('ul').length > 0){    
             $(this).find('.sub-menu').addClass('showMenu');
        }
    }, function(){ 
             $(this).find('.sub-menu').removeClass('showMenu');
    });

});

http://jsfiddle.net/Hnk9W/26/

关于javascript - 单击其他元素时从子菜单项中删除事件类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31668708/

相关文章:

Javascript普通函数和函数对象的区别

javascript - window.close() 在 Firefox 中不起作用

javascript - 谁能解释一下为什么scrollspy和jquery在这里不起作用?

html - 如何进入内部 Maybe monad 从纯脚本中的 html 按钮中提取类名?

html - 博客评论小部件的 CSS 帮助

javascript - addEventListener 检测变化类型

javascript - 你能在 JavaScript 中捕获内存不足错误吗

jquery - 使用 jQuery 保存 html 表单布局和值

Javascript 过滤嵌套数组

javascript - 使用 Bower 安装 Jquery 时出现 "Define is not defined"错误