Небольшая работа вокруг
$(function(){
$("#div2").draggable();
$("#txtbox").click(function(event){
event.stopPropagation();
$("#colorpicker").show();
});
$("#txtbox").blur(function(){
$("#colorpicker").hide();
});
$('#div2').click(function() {
$("#colorpicker").hide();
});
});
Я просто прекращаю распространение на div2, когда вы нажимаете на текстовое поле. В противном случае он снова скрывает палитру.