Я думаю, что было бы несколько способов достичь этого, например, проверить переменную e
для целевых объектов и т. Д., Но для вашего сценария самым простым и читаемым было бы использование функции is()
, для которойВы можете передать любой селектор CSS, чтобы проверить, соответствует ли объект интереса.
var onMyEvent = function(e){
if($(this).is('a')){
//do that
}
if($(this).is('div')){
//do that
}
}
$('a').click(onMyEvent);
$('div').click(onMyEvent);
Есть те, кто будет утверждать, что вышеизложенное требует ненужного обхода в jQuery, когда вы можете достичь того же самого путемтестирование this.tagName == 'A'
, но я обычно рекомендую также делегировать эти вещи в jQuery, из соображений совместимости с браузером.
Другой удобный способ - передать соответствующую информацию в виде данных события:
var onMyEvent = function(e){
if(e.data.type == 'a'){
//do that
}
...
}
$('a').click({ type: 'a' }, onMyEvent);
$('div').click({ type: 'div' }, onMyEvent);