jQuery не может привязать событие к загруженному элементу AJAX, используя .on () [duplicate]

На этот вопрос уже есть ответ здесь:

Привязка событий к динамически создаваемым элементам? 23 ответа

Используя .load, я загружаю следующее содержимое в # step_2 div:

<div id="step_2">
    Select a subcategory:
    <select id="subcategory_id" name="subcategory_id">
        <option value="0">All subcategories</option>
        <option value="68">Cool</option>
        <option value="15">Cooler</option>
        <option value="74">Excellent</option>
    </select>
</div>

Затем я пытаюсь определить, когда пользователь выбирает что-то:

$("#subcategory_id").on("change", function(){
    alert( 'Success!' );
});

но безуспешно Кто-нибудь видит, что я делаю не так? Помощь очень ценится.

ПРИМЕЧАНИЯ:

Вот полный путь CSS, который видит FireBug:

html.js body div#container div#main form div#step_2 select#subcategory_id

Вот полный файл javascript, если контекст имеет значение:

$(document).ready(function() {

    $("#category_id").change(function() {
        $("#spinner").show();
        $("#step_2").load("process.php?selected=category", { value: $(this).val() }, function() {
            // Do something to say the data has loaded sucessfully
            $("#spinner").hide();
        });
    });

    $("#subcategory_id").on("change", function(){
        alert( 'Success!' );
    });

});

Ответы на вопрос(5)

Ваш ответ на вопрос