10

I'm attaching a custom event handler to the body in jQuery's ready method.
Afterwards I immediately trigger the custom event but nothing seems to happen.

$(function(){
    $("body").on("test", function(){ alert("test triggered"); }
    $("body").trigger("test");
}
4
  • .on - Attach an event handler function for one or more events to the selected elements. what is the event here? Commented Jun 19, 2013 at 23:45
  • 2
    @dementic please don't change the code in edits Commented Jun 19, 2013 at 23:58
  • @zod "test", it's a custom event. Commented Jun 20, 2013 at 0:33
  • rolled question back to original state to reflect the root problem Commented Nov 25, 2015 at 22:32

2 Answers 2

6

Firstly you have a syntax error

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

Secondly you cannot trigger the event from the console , as $(function() {}); forms a closure and you will not have access to any of the methods inside them

For it to work like you are expecting , put a debug point in your script file and then try to trigger the event. It works now as the events are in scope.

Sign up to request clarification or add additional context in comments.

2 Comments

Sure you can. Executing $("body").trigger("test"); in the console will work. Why wouldn't it work? $ is a global variable.
My apologies on the syntax error. Didn't know that an event listener wouldn't hear an event happening outside of its closure. Thanks!
4

It looks like your code is not formatted correctly. Check your debug console to confirm.

You can try this:

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

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.