html:
<div id="container">
<div class="desc">desc</div>
<a href="foo.php">foo</a>
</div>
js:
$('#container').click(function(){
...
my_function();
...
});
当用户在容器内部(标记除外(单击时,此操作有效。
如果用户单击某个标记,则会触发单击事件。但是,我想禁用标签的自定义点击功能。也就是说,链接到没有onlick事件的页面。
这不起作用:
$('#container :not(a)').click();
检查事件是否源自a
标记,如
$('#container').click(function(e){
if ($(e.target).is('a')) return;
...
my_function();
...
});
听起来你想阻止A
标签的默认点击事件触发-使用:
$('#container a').click(function(e) {
e.preventDefault();
});
编辑
如果用户点击链接,防止您的事件触发:
$('#container').click(function(e) {
if(e.target.tagName !== 'A') {
my_function();
}
});
在链接上附加一个点击事件处理程序,告诉它们在自己的处理程序执行后停止事件冒泡:
$("#container a").click(function(e) {
e.stopPropagation();
})
其他解决方案不适用于使用图像作为锚点的超链接。(target=object HTMLImageElement&tagName=DIV(