逻辑隐藏打开子菜单点击其他地方?

时间:2014-11-29 12:17:25

标签: javascript frontend

假设用户访问电子商务网站并点击产品,则有一个子菜单会下降。编写什么逻辑以确保当用户点击隐藏子菜单的任何其他空白区域时(或元素)?

2 个答案:

答案 0 :(得分:0)

疯狂的猜测:除了子菜单点击之外的其他内容,然后关闭它。

// assumption: submenu has open() and close() functions
submenu.open();
var listener = document.addEventListener('click', function(e){
    // TODO: how to check if click is on submenu?
    if (e.target != submenu) { 
       submenu.close(); 
       document.removeEventListener('click', listener);
    }
});

答案 1 :(得分:0)

检查这个js小提琴: -

http://jsfiddle.net/H3Vnw/3/

这是java脚本代码: -

$(document).mouseup(function (e)
{
    var container = $('.dropdown-menu');

    if (container.has(e.target).length === 0)
    {
        container.hide();
    }
});


$('.comment').click(function(){
    $('.dropdown-menu').css({'display': 'block'});
});

如果我们点击评论,我们可以点击下拉菜单,如果我们点击其中隐藏下拉菜单的地方!

希望这有帮助!