如果div没有被隐藏,请点击任何地方隐藏。

15 浏览
0 Comments

如果div没有被隐藏,请点击任何地方隐藏。

这个问题已经有了答案

如何检测元素外的单击?

我试图使一个 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;        
});
}
});

admin 更改状态以发布 2023年5月23日
0
0 Comments

试试这个:

$('#theDiv').hide();
    $("#showDivBtn").click(function(){
      $("#theDiv").toggle();
    });
    $(document).on("click" , function(event){
    if( $(event.target).attr("id") != "theDiv" && $(event.target).attr("id") != "showDivBtn" && $(event.target).parents("#theDiv").attr("id") != "theDiv")
    {
    $('#theDiv').hide();
    }
    });

0
0 Comments

将整个事件处理程序放在条件语句中只在第一次页面加载时检查条件,而事件处理程序可能永远不会被附加,请改为以下方式尝试:

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

FIDDLE

0