我想在点击DOM元素以外的其他内容时触发事件,并在单击图像时单独发生事件。
现在我有:
$( document ).click( function() { /*do whatev*/ } );
在另一个地方:
$( "img" ).click( function( e ) {
e.stopPropagation();
/*do whatev*/
} );
它不起作用。这两件事都被解雇了。还有其他想法吗?
答案 0 :(得分:2)
简洁明了:
jQuery(document).click(function(event) {
if (jQuery(event.target).is('img'))
{
alert('img');
}
else
{
// Reject event
return false;
}
});
如果用户点击img元素'img'会收到警报,否则点击事件就会停止。
答案 1 :(得分:1)
类似的东西:
$('*').click(function(ev) {
ev.stopPropagation();
if ($(this).is('img')) alert('img');
else if($(this).is('div')) alert('div');
else alert('something else');
});
答案 2 :(得分:0)
这应该有用,但只有img
是不够的。它可能是从img容器触发的。我认为你需要一个像$('p,div,img,a,input,textarea,span,ul,ol,dl,li,dd,dt,table,tr,td')
这样的选择器以及你能想到的任何其他标签来实现它。这可能存在性能问题。
答案 3 :(得分:0)
如果您希望在点击html
和/或body
或点击img
时触发某个事件,则可以使用以下内容: Live Example 强>
$(document).click(function(e) {
if($(e.target).is('html')){
alert('this is the html element');
}else if($(e.target).is('body')){
alert('this is the body element');
}
});
$("img").click(function(e) {
e.stopPropagation();
alert('img')
});