С помощью $ (this) вы получите элемент, по которому щелкнули ... а использование is () может помочь вам определить, по чему щелкнули.
$('a.button, span.xyz, a.another').click(function(e) {
if ($(this).is("a.button")) {
alert("a.button was clicked");
} else if ($(this).is("span.xyz")) {
alert("span.xyz was clicked");
} else if($(this).is("a.another")) {
alert("a.another was clicked);
}
});
Отредактировано:
Когда я написал этот ответ, кажется, что есть лучший подход.Комментарий Патрика DW меня заинтриговал, и я хотел узнать больше.Его разъяснение здесь jQuery - Проблемы с объединением селекторов в одном обработчике событий
Это был бы лучший подход
$("a.button").click(function (e) { ... });
$("span.xyz").click(function (e) { ... });
$("a.another").click(function (e) { ... });
Как я понимаю, если ваша цель былачтобы разместить общую функциональность в одном месте, то вот как это должно быть обработано
function commonFunctionality(elementSelector) {
// common code for all elements here or at the end
switch (elementSelector) {
case "a.button":
//do stuff for a.button only;
break;
case "span.xyz":
//do stuff for span.xyz only;
break;
case "a.another":
//do stuff for a.another only;
break;
}
// common code for all elements
}
$("a.button").click(function (e) { ... });
$("span.xyz").click(function (e) { ... });
$("a.another").click(function (e) { ... });