我正在尝试制作一个简单的插件,因此当用户点击照片时,他会获得更大的照片(因为所有照片都比实际照片小)。我的问题是,当用户点击body
或html
时,这张更大的照片如何关闭,但如果点击照片则不应关闭它?它可能应该是这样的:
$('body, html').click(function() {
if(clickedOnPhoto)
//do nothing
else
//close the photo
})
答案 0 :(得分:6)
试试这个:
$(document).click(function(e){
var id = e.target.id; // get the id attribute of the target of the click
if( id === 'yourDivId' ) {
// photo was clicked
} else {
// something else was clicked
}
});
答案 1 :(得分:2)
而不是检查目标是什么并决定做什么;您可以向click
元素添加document
事件处理程序以关闭大照片,并为停止传播click
事件的大照片添加click
事件处理程序它没有到达document
元素:
$('#photo-container').on('click', '.big-photo-elements', function (event) {
//stop the event from propagating normally so that it does not reach the `document` element
event.stopPropagation();
});
$(document).on('click', function () {
//run code to close big photos, this will not be triggered if a user clicks on the big photo
$('.big-photo-elements').hide();
});
答案 2 :(得分:0)
event.target将为您提供已点击的最多元素。您可以将其包装到$()
中,以通过jQuery