¿Por qué el evento jquery change no se activa cuando configuro el valor de una selección usando val ()?

La lógica en elchange() el controlador de eventos no se ejecuta cuando el valor lo estableceval(), pero se ejecuta cuando el usuario selecciona un valor con su mouse. ¿Por qué es esto?

<select id="single">
    <option>Single</option>
    <option>Single2</option>
</select>

<script>
    $(function() {
        $(":input#single").change(function() {
           /* Logic here does not execute when val() is used */
        });
    });

    $("#single").val("Single2");
</script>

Respuestas a la pregunta(9)

Su respuesta a la pregunta