this
se référera à l'élément DOM réel, et donc vous pouvez vérifier tagName
ou className
, ou venir chercher $(this).parents('#header')
.
$('#header a, #nav a').click(function (event) {
var $this = $(this);
if ($this.parents("#header").length > 0) {
display("I'm inside #header");
}
else if ($this.parents("#nav").length > 0) {
display("I'm inside #nav");
}
else {
// Obviously this won't happen.
// None of us has *ever* changed a selector and forgotten to update the code! ;-)
display("I'm confused!");
}
return false;
});
Live example
hors sujet: Je suis d'accord avec Felix et melaos que si vous êtes vraiment faire des choses qui différent, refactoring dans des gestionnaires distincts (peut-être appeler des fonctions communes) est probablement La meilleure façon de procéder ...
Ou bien mettre la logique en une seule fonction et de diviser le clic en deux appels appelant la même fonction. – melaos
Si vous faites deux choses totalement différentes pour les éléments, vous devez attacher un gestionnaire d'événement individuel à chaque élément. –