当点击在外面时想要隐藏此div,排除其中的任何点击

时间:2012-11-24 23:16:34

标签: javascript jquery html

  

可能重复:
  Detect click outside element?

我试图在焦点(点击)在它之外时隐藏div,但是它中有一些元素而不是在所有这些上执行e.target.id是否有一种方法可以包含所有元素?我的意思是明确的吗?

编辑:我在hide

之外的任何人#contain_name时尝试click newsletter

jsfiddle:demo

<div id="newsletter">
    <form action="#" class="form-post">
        <div class="clearfix">
            <input type="text" id="email" name="email" placeholder="email" />
            <button id="fake">Send</button>
        </div>
        <div id="contain_name" class="clearfix">
            <input type="text" id="person_name" placeholder="full name" />
            <button id="real_button">Send</button>
        </div>
    </form> 
</div> 


$('#email').focus(function() {
    $('#fake').fadeOut();
    $('#contain_name').slideDown();
});

$(document).on('click', function(){
    //do something here
});

2 个答案:

答案 0 :(得分:2)

$(document).on('click', function(e){
    if (e.target !== $("#excludedDiv")[0]) {
      // do something there
    }
});

答案 1 :(得分:0)

此?

$( document ).on( 'click', function ( e ) {
    if ( !$( e.target ).closest( '#newsletter' )[0] ) {
        $( '#contain_name' ).hide();
    }
});

现场演示: http://jsfiddle.net/FUDLk/11/