hola
Para controlar la propagacion del evento puedes usar stopPropagation()
Tambien deberias de añadir una clase y eliminarla segun te interese.
Aqui tienes un ejemplo de lo que necesitas:
Código HTML:
Ver original<!DOCTYPE html>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /></head> body {width:100%;height:100%;}
.search {position:absolute;top:-10%;background-color:yellow;}
#contenedor {background-color:silver;}
<script type="text/javascript"> $(document).ready(function(){
$('body').on('click', '.escucha' , function(){
$('.search').animate({
top:'-10%'
});
$('#contenedor').removeClass('escucha');
});
$('.buscar').click(function(event){
$('.search').animate({
top:'55'
});
$('#contenedor').addClass('escucha');
event.stopPropagation();
});
$('.bar-search , .btn-search').click(function(event){
event.stopPropagation();
});
});//fin de ready
<li class="search-menu-full"><a href="javascript:;" class="buscar"><span class="icon-search">texto
</a></li> <form action="" method="GET"> <input type="text" name="name" placeholder="Buscar" class="bar-search"> <input type="button" name="buscar" value="Buscar" class="btn-search"> <p>texto
</p><p>texto
</p><p>texto
</p><p>texto
</p><p>texto
</p>