alex
alex

Reputation: 490273

Can I determine what event triggered an event handler in jQuery if I bind multiple ones?

Check this example:

$('button').bind('click focus', function() {

   // Did I click or focus?
});

Is there a way to work that out when binding multiple events to one handler?

This may work, but it is kind of ugly:

var eventType;

$('button').click(function() {
   eventType = 'click';
   do();
});

$('button').focus(function() {
   eventType = 'focus';
   do();
});

function do() {
    alert(eventType);
}

Upvotes: 1

Views: 752

Answers (1)

Nick Craver
Nick Craver

Reputation: 630429

You can use event.type on the event object (the first param passed to the handler), like this:

$('button').bind('click focus', function(e) {
  if(e.type == "click") {
    //do something, it was a click
  }
});

Upvotes: 4

Related Questions