Ответ 1
Сравните event.target
с this
. this
всегда является событием, в котором связан обработчик; event.target
всегда является элементом, в котором произошло событие.
$(document.body).click(function(event) {
if (event.target == this) {
// event was triggered on the body
}
});
В случае элементов, которые, как известно, уникальны в документе (в основном, просто body
), вы также можете проверить nodeName
this
:
$(document.body).click(function(event) {
if (event.target.nodeName.toLowerCase() === 'body') {
// event was triggered on the body
}
});
Вы должны сделать toLowerCase()
, потому что случай nodeName
несовместим между браузерами.
Последний параметр - сравнить с идентификатором, если у него есть один элемент, потому что они также должны быть уникальными:
$('#foo').click(function(event) {
if (event.target.id === 'foo') {
// event was triggered on #foo
}
});