Ответ 1
jQuery предлагает некоторый синтаксический сахар, чтобы помочь с вашей проверкой - .is()
позволяет проверять элемент на любой другой допустимый селектор:
var $target = event.target;
if ($target.is('div')){
alert($target.attr('class'));
}
Есть несколько дальнейших изменений:
-
.click(handler)
явно присваивается согласованным элементам (каждый отдельный элемент в вашем случае). Это добавляет накладные расходы; также обработчик не будет применяться к любому элементу, добавленному динамически после выполнения назначения обработчика. Вместо этого делегируйте обработчик, используяon()
- реорганизуйте свою логику, чтобы вместо обработки каждого отдельного клика и проверки его вы могли сделать это применимым только к divs в первую очередь, изменив селектор на
$('div')
- полагайтесь на
this
, что в значительной степени условно
После всех этих изменений код становится меньше и читаем:
$('div').on('click', function() {
alert($(this).attr('class'));
});