understanding the usage of e inside carasoul.js

understanding the usage of e inside carasoul.js

hey guys i was just going through the code of carousel.js and i am a little bit confused , now we it comes to attaching events i ofte see code as follows :: 

  
  1. $('a').click(fuction(e){
  2. if(e.target.targetNode == $(this)[0])
  3. //do something
  4. });
I am still a bit confused , who is passing the e ? WHO really is passing that e inside the function ? also in the plugin code i see things like the below :


    
  1. Carousel.prototype.keydown = function (e) {
  2. if (/input|textarea/i.test(e.target.tagName)) return
  3. switch (e.which) {
  4. case 37: this.prev(); break
  5. case 39: this.next(); break
  6. default: return
  7. }
an event handler is attached like so :

      
  1. this.options.keyboard && this.$element.on('keydown.bs.carousel', $.proxy(this.keydown, this))
another example is here :

        
  1. Carousel.prototype.pause = function (e) {
  2. e || (this.paused = true)

  3. if (this.$element.find('.next, .prev').length && $.support.transition) {
  4. this.$element.trigger($.support.transition.end)
  5. }
  6. this.interval = clearInterval(this.interval)
  7. return this
  8. }

Who is passing e inside these functions , from where is it coming from ? i have absolutly no clue , i have been using JS for a while now , but this still baffles me . can somebody really clear this doubt for me once and for all ?

P.S. I have seen this answer on SO , but it does't answer the questions i have asked . I understand that e is in a way a object with differentv properties that we can access.