Método de cambio de jQuery en el tipo de entrada = "archivo"

Estoy tratando de adoptar jQuery 100% con su API simple y elegante, pero me he encontrado con una inconsistencia entre la API y el HTML directo que no puedo entender.

Tengo un script de cargador de archivos AJAX (que funciona correctamente) que quiero ejecutar cada vez que cambia el valor de entrada del archivo. Aquí está mi código de trabajo:

<input type="file" size="45" name="imageFile" id="imageFile" onchange="uploadFile()">

Cuando convierto elonchange evento a una implementación de jQuery:

$('#imageFile').change(function(){ uploadFile(); });

El resultado no es el mismo. Con elonchange atribuir eluploadFile() Se llama a la función cada vez que se cambia el valor como se esperaba. Pero con la API jQuery.change() controlador de eventos, el evento solo se dispara la primera vez que se cambia un valor. Cualquier cambio de valor después de eso se ignora. Esto me parece mal, pero seguramente jQuery no puede ser un descuido, ¿verdad?

¿Alguien más ha encontrado el mismo problema y tiene una solución alternativa o solución al problema diferente a la que describí anteriormente?

Respuestas a la pregunta(3)

Su respuesta a la pregunta