如果div没有被隐藏,请点击任何地方隐藏。
如果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日
试试这个:
$('#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(); } });
将整个事件处理程序放在条件语句中只在第一次页面加载时检查条件,而事件处理程序可能永远不会被附加,请改为以下方式尝试:
$('#theDiv').hide(); $(document).on('click', function(e) { if ( $(e.target).closest('#showDivBtn').length ) { $("#theDiv").show(); }else if ( ! $(e.target).closest('#theDiv').length ) { $('#theDiv').hide(); } });