jQuery检查目标是否是链接

Cri*_*sty 11 javascript click

我有一个全局功能来捕获点击.

$(document).click(function(e){
  //do something
  if(clickedOnLink)
    //do something
});
Run Code Online (Sandbox Code Playgroud)

当目标是一个链接时,我想做更多的东西,但如果<a>标签实际上围绕一个div(因为HTML5允许这个),目标将是该div.

http://jsfiddle.net/Af37v/

Roc*_*mat 29

您可以尝试查看您单击的元素是否是<a>标记的子元素.

$(document).click(function(e){
    if($(e.target).closest('a').length){
        alert('You clicked a link');
    }
    else{
        alert('You did not click a link');
    }
});
Run Code Online (Sandbox Code Playgroud)


Jam*_*gne 17

我相信使用is实际上会比答案提示更好closest:

$(e.target).is('a, a *');
Run Code Online (Sandbox Code Playgroud)

这将检查元素本身是否为a a或者是否包含a.

这应该比closest因为它将使用元素本身的匹配而不需要像往常一样遍历DOM树那样快closest.


kre*_*eig 5

试试这个

$(document).click(function(e){
  //do something
  if($(this).closest('a').length)
    //do something
});
Run Code Online (Sandbox Code Playgroud)