2010-08-20 6 views
1

Vérifiez cet exemple ...Puis-je déterminer quel événement a déclenché un gestionnaire d'événements dans jQuery si j'en lier plusieurs?

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

    // Did I click or focus? 
}); 

Est-il possible de travailler que lorsque la liaison de plusieurs événements à un gestionnaire?

Ce peut travail, mais il est un peu moche ...

var eventType; 

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

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

function do() { 
    alert(eventType); 
} 

Répondre

4

Vous pouvez utiliser event.type sur le event object (le premier param transmis au gestionnaire), comme ceci:

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

Merci Nick! Vous êtes très utile! – alex