我有一个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()。
请帮助。
谢谢
答案 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();
}
});