por que ya viene siendo otro elemento, si ves en la condicion que puse solo pregunto por el id, i no_selecciona no es igual a no_selecciona2 y lanza el alert, otra opcion que se me ocurre es que en vez de ponerlo como id lo pones como una clase algo asi:
Código HTML:
Ver original<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> body{ height:500px;}
#no_selecciona{ border:solid 1px;}
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js"></script> $(document).ready(function(){
$('body').click(function(ev){
var target = $(ev.target);
if(target.not('.no_seleccionable').length){
alert('click body')
}
});
});
<div id="no_selecciona" class="no_seleccionable">hola
<div class="no_seleccionable"> otro div
</div>