使用onclick事件解锁div内的'a'的onclick事件

ben*_*nck 2 jquery onclick

HTML:

<div id="container">
<div class="desc">desc</div>
<a href="foo.php">foo</a>
</div>
Run Code Online (Sandbox Code Playgroud)

JS:

$('#container').click(function(){
    ...
    my_function();
    ...
});
Run Code Online (Sandbox Code Playgroud)

当用户单击除a标记之外的容器内部时,此方法有效.

如果用户单击标记,则会触发单击事件.但是,我想禁用标签的自定义单击功能.也就是说,链接到没有onlick事件的页面.

这不起作用:

$('#container :not(a)').click();
Run Code Online (Sandbox Code Playgroud)

Shr*_*rat 6

检查事件是否源自a标记,如此

$('#container').click(function(e){
    if ($(e.target).is('a')) return;
    ...
    my_function();
    ...
});
Run Code Online (Sandbox Code Playgroud)


Gar*_*ers 6

听起来你想要阻止A标签触发的默认点击事件- 使用:

$('#container a').click(function(e) {
  e.preventDefault();
});
Run Code Online (Sandbox Code Playgroud)

编辑

要防止在用户点击链接时触发您的活动:

$('#container').click(function(e) {
  if(e.target.tagName !== 'A') {
    my_function();
  }
});
Run Code Online (Sandbox Code Playgroud)