$('*') - ооо... на странице обычно очень много элементов, вешать на них на все события?!.. лучше уж как-то так:
<style>
.popup {
padding: 5px;
height: 100px;
width: 100px;
background-color: #DCDCDC;
border: 1px #ACACAC solid;
}
.popup span {
padding: 4px;
border: 1px #AAA solid;
background-color: gray;
}
</style>
<div class="popup">This is <span>popup</span></div>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
<script>
$(function() {
var over = false;
$('.popup').mouseenter(function() {
over = true;
})
.mouseleave(function() {
over = false;
});
$(document).click(function(e) {
if (!over) {
$('.popup').hide();
$(this).unbind(e);
}
});
});
</script>