Как вызвать пользовательское событие с помощью jQuery?

Я прикрепляю собственный обработчик событий к body в ready методе jQuery.
После этого я немедленно trigger пользовательское событие, но ничего не происходит.

$(function(){
    $("body").on("test", function(){ alert("test triggered"); }
    $("body").trigger("test");
}

Ответ 1

Во-первых, у вас есть синтаксическая ошибка

$(function(){
    $("body").on("test", function(){
        alert("test triggered");
    });  < ---- Missing this
    $("body").trigger("test");
});

Во-вторых, вы не можете инициировать событие из консоли, так как $(function() {}); формирует закрытие, и у вас не будет доступа к каким-либо из методов внутри них

Чтобы он работал так, как вы ожидаете, поставьте точку отладки в свой файл script, а затем попробуйте запустить событие. Он работает теперь, когда события находятся в сфере охвата.

Ответ 2

Похоже, что ваш код не отформатирован правильно. Проверьте свою консоль отладки, чтобы подтвердить.

Вы можете попробовать следующее:

$(function(){
    $("body").on("test", function(){
        alert("test triggered");
    });
    $("body").trigger("test");
}