function(e){e.something…} What is e?

后端 未结 5 477
青春惊慌失措
青春惊慌失措 2021-01-06 04:22

When I write

$(\"#new_lang\").click(function(e) 
{
  alert(\"something\");
  e.stopPropagation();
});

What is e here, and

相关标签:
5条回答
  • 2021-01-06 04:37

    It is event object.

    http://api.jquery.com/category/events/event-object/

    0 讨论(0)
  • 2021-01-06 04:48

    e is the event object that the handler receives. You need not use "e" specifically as the variable name, you can call it anything you want (as long as it's not any number of keywords!), many call it event for example.

    Yes, you can do without it, since it's the first argument, arguments[0] also works, but I wouldn't go that route. You can see this working here, but again I would just use the argument declared like it is currently so it's very explicit.

    0 讨论(0)
  • 2021-01-06 04:51

    e in that example is the event object (link to docs) for the click event. As with any function argument, you can use any name you want. If you don't need to do anything with it (for instance, if you don't need to call stopPropagation), you can leave it off entirely.

    0 讨论(0)
  • 2021-01-06 05:00

    Again from http://api.jquery.com/bind/ as linked on the previous question:

    The handler callback function can also take parameters. When the function is called, the JavaScript event object will be passed to the first parameter.

    The event object is often unnecessary and the parameter omitted, as sufficient context is usually available when the handler is bound to know exactly what needs to be done when the handler is triggered. However, at times it becomes necessary to gather more information about the user's environment at the time the event was initiated.

    There is a lot of useful info on that page. :)

    0 讨论(0)
  • 2021-01-06 05:01

    e, in this context, is the event object raised by the click event. It will work perfectly well without it (albeit, in your example you will be unable to stopPropagation):

    $("#new_lang").click(function() 
    {
      alert("something");
    });
    

    You can also substitute any name for e, as you would with any function param

    $("#new_lang").click(function(eventObj) 
    {
      alert("something");
      eventObj.stopPropagation();
    });
    
    0 讨论(0)
提交回复
热议问题