Связывание с «изменением» обычно не очень удобно, поскольку оно обычно не срабатывает до тех пор, пока вы не нажмете вкладку или не уйдете от элемента.
Однако опрос также не является ответом.
оригинальный ответ: http://jsfiddle.net/xNEZH/2/
супер фантастический новый ответ: http://jsfiddle.net/4MhKU/1/
$('.input1').bind('mouseup keyup change cut paste', function(){
setTimeout(function(){
var hasInput = $('.input1').val() != "";
$('.box')[hasInput ? 'show' : 'hide']();
}, 20);
});
setTimeout происходит потому, что события вырезания и вставки запускаются ДО того, как текст будет вырезан или вставлен.