Jquery捕获特定div之外的链接

时间:2015-05-13 15:07:40

标签: javascript jquery html

当用户单击特定div元素之外的超链接时,我需要捕获该事件。为了证明:

如果我有这个HTML:

<a id = "1" href="/someurl..">link</a>
<a id = "2" href="/someurl..">link</a>
<a id = "3" href="/someurl..">link</a>

<div id="content">
   <a id = "4" href="/someurl..">link</a>
</div>

我需要抓住用户点击div之外的每个超链接并且id为“内容”的事件。但是,当点击div“内容”中的链接时,忽略该事件。

------------------ UPDATE ----------------

有人建议我包括我想要达到的目标,以增加清晰度。最好的办法是问题。

我的用例是,我有一个div,其中正在使用一些操作(链接),如排序,编辑等。外部链接是重定向到其他页面的链接。如果用户导航,我想使用bootbox进行确认模式。我可以使用卸载,但是当我点击编辑,排序操作(div中的链接)时它也会触发。

谢谢!

4 个答案:

答案 0 :(得分:5)

您可以使用jQuery's siblings() method专门定位div元素的兄弟姐妹:

  

<强> .siblings( [selector ] )

     

获取匹配元素集中每个元素的兄弟元素,可选择通过选择器进行过滤。

$('#content').siblings('a').on('click', function() { ... });

答案 1 :(得分:3)

您可以使用.not()运算符或:not

$('a').not('#content a').click(function(){
    //...do something
})

答案 2 :(得分:3)

使用:not()

$('a:not(#content a)')

DEMO

答案 3 :(得分:2)

有很多方法。一种方式

$('a').click(
    function(){
        if($(this).closest('#content')){
            return;
    }
});

closest检查是否存在具有id内容的父元素。