$(document).click(function(e){
e = e || window.event;
t = e.target || e.srcElement;
if (!$(t).is('#appearing-box') && $(t).parents().find('#appearing-box').size()==0) {
$('#appearing-box').hide();
}
});
Убрал отрицание у второго условия. Иначе был обратный эффект.
Еще, не могли бы вы раскрыть смысл 2-ой и 3-ей строк. Не совсем понятно, что это.
А селектором :not нельзя тут обойтись??