单击外部时单击并隐藏显示div

riz*_*don 5 html javascript show hide

我试图在点击一个链接后显示#subscribe-pop div,并在点击它之外的任何地方时隐藏它.如果我改变:我可以让它显示和隐藏:

$('document').click(function() {
Run Code Online (Sandbox Code Playgroud)

$('#SomeOtherRandomDiv').click(function() {
Run Code Online (Sandbox Code Playgroud)

HTML:

<div id="footleft">
    <a href="#" onclick="toggle_visibility('subscribe-pop');">Click here to show div</a>
    <div id="subscribe-pop"><p>my content</p></div>
</div>
Run Code Online (Sandbox Code Playgroud)

脚本:

<script type="text/javascript">
    function toggle_visibility(id) {
        var e = document.getElementById("subscribe-pop");
        if(e.style.display == 'block')
            e.style.display = 'none';
        else
            e.style.display = 'block';
        }
    }

    $('document').click(function() {
        $('#subscribe-pop').hide(); //Hide the menus if visible
    });

    $('#subscribe-pop').click(function(e){
        e.stopPropagation();
    });
</script>
Run Code Online (Sandbox Code Playgroud)

Lui*_*iri 13

您必须在容器中停止事件传播(在本例中为"footleft"),因此父元素不会注意到事件已被触发.

像这样的东西:

HTML

 <div id="footleft">
    <a href="#" id='link'>Click here to show div</a>
    <div id="subscribe-pop"><p>my content</p></div>
 </div>
Run Code Online (Sandbox Code Playgroud)

JS

 $('html').click(function() {
    $('#subscribe-pop').hide();
 })

 $('#footleft').click(function(e){
     e.stopPropagation();
 });

 $('#link').click(function(e) {
     $('#subscribe-pop').toggle();
 });
Run Code Online (Sandbox Code Playgroud)

看到它在这里工作.