单击html,元素和子元素除外

时间:2014-11-06 09:35:48

标签: jquery

所以我想要完成的是你通过点击它之外的任何地方来关闭弹出窗口。但就像现在一样,如果你点击一个< p为H.弹出窗口内的标签,它也会关闭......

我现在得到的是:

$('html').click(function(e) {
    var popup = $('.popup');

    if(popup.length) {
        if(!$(e.target).is('.popup-content') || !$(e.target).is('.popup-content').find('*')) {
            popup.removeClass('in');

            setTimeout(function () {
                popup.remove();
            }, 300);
        }
    }
});

显然!$(e.target).is('。popup-content')。find('*')似乎不起作用。 内容不会是静态的......

希望有人有解决方案

1 个答案:

答案 0 :(得分:0)

试试这个:

$('html').click(function(e) {
    var popup = $('.popup');
    var clickedElement = e.target;
    var popupContent = ($(clickedElement).closest('.popup-content').length > 0)? true:false;
    if(popup.length > 0) {
        if(!popupContent) {
            popup.removeClass('in');

            setTimeout(function () {
                popup.remove();
            }, 300);
        }
    }
});