views:

29

answers:

1

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);
}
+2  A: 

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
  }
});
Nick Craver
Thanks Nick! You are very helpful!
alex