如果div未隐藏,请单击任意位置以隐藏

Poy*_*oyi 13 javascript jquery

我试图默认隐藏div并通过单击按钮显示.要关闭div,我可以点击按钮或屏幕上的任何其他位置.以下是我的尝试,但结束部分不起作用.我很感激,如果有人能指出我正确的实施或者更好的方法来做到这一点.

$('#theDiv').hide();

$("#showDivBtn").click(function(){
  $("#theDiv").show();
});

if ( !$('#theDiv:hidden') ) {

$(document).click(function() {
    $('#theDiv').hide();
});
$('#theDiv').click(function(e) {
    e.stopPropagation(); 
    return false;        
});

}

});
Run Code Online (Sandbox Code Playgroud)

ade*_*neo 17

将整个事件处理程序置于条件中仅检查第一个页面加载的条件,并且事件处理程序可能永远不会附加,请尝试这样做:

$('#theDiv').hide();

$(document).on('click', function(e) {
    if ( $(e.target).closest('#showDivBtn').length ) {
        $("#theDiv").show();
    }else if ( ! $(e.target).closest('#theDiv').length ) {
        $('#theDiv').hide();
    }
});
Run Code Online (Sandbox Code Playgroud)

小提琴