点击外面应该隐藏div而不是何时点击div的子元素?

时间:2014-05-05 12:40:06

标签: jquery

我有一个div里面有一个jquery日历控件,有一个月份下拉列表。我希望它在外面点击时隐藏。发生的事情就是当我点击外面时,它完全隐藏了,但即使我从下拉框中选择了某些内容,它也会隐藏起来。

我试过这个 -

 $(document).mouseup(function (e) {
    var container = new Array();
    container.push($('.CalendardivTSFrom'));
    container.push($('.CalendarEditdiv1'));
    container.push($('.CalendarEditdiv'));

    $.each(container, function (key, value)
    {
        if (!$(value).is(e.target))
        {
            e.stopPropagation();
            $(value).hide();
        }
    });
});

当div的子元素(下拉列表)有一个单击时,它不应该隐藏为什么我使用了e.stopPropagation()。

请帮助。

谢谢

1 个答案:

答案 0 :(得分:0)

尝试这样的事情..只要你在包装器中点击它就不会隐藏div。

$(document).on('click', function (e) {
    if ($('.CalendardivTSFrom').length > 0) {
        var elemDontClose = $('.CalendardivTSFrom'); // wrapper div i guess?!
        var rect = elemDontClose.get(0).getBoundingClientRect();
        var isClickWithinElement = (
            (e.clientX >= rect.left) &&
            (e.clientX <= rect.right) &&
            (e.clientY >= rect.top) &&
            (e.clientY <= rect.bottom)
        );

        if (!isClickWithinElement)
            HideDiv();
    }
});