If div is not hidden click anywhere to hide

This question already has an answer here:

  • How do I detect a click outside an element? 76 answers

  • placing the entire event handler inside a condition only checks the condition on first pageload, and the event handler is probably never attached, try it like this instead :

    $('#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


    try using

    if( !$('.theDiv' ).is( ':visible' ) )

    instead of

    if ( !$('.theDiv:hidden') )


    尝试这个

        <script type="text/javascript">
        $('.opendiv').hide();
        $(document).click(function (event) {
            var $target = $(event.target);
            if ($target.attr('id') == 'addAccordion') {
                if ($('.opendiv').is(':hidden')) {
                    $('.opendiv').show();
                }
                else {
                    $('.opendiv').hide();
                }
            }
            else if ($target.closest('.opendiv').length > 0) {
    
            }
            else {
                $('.opendiv').hide();
    
            }
    
        })
    </script>
     <div>
        <input id="addAccordion" type="button" value="ADD COMMENT" />
    </div>
    <div id="rs" class="opendiv">
        <h2>
            Welcome to ASP.NET!
        </h2>
        <p>
            To learn more about ASP.NET visit <a href="http://www.asp.net" title="ASP.NET Website">
                www.asp.net</a>.
        </p>
        <p>
            You can also find <a href="http://go.microsoft.com/fwlink/?LinkID=152368&amp;clcid=0x409"
                title="MSDN ASP.NET Docs">documentation on ASP.NET at MSDN</a>.
        </p>
    </div>
    
    链接地址: http://www.djcxy.com/p/14700.html

    上一篇: onClickOut(离开元素后点击)

    下一篇: 如果div未隐藏,请单击任何位置以隐藏