当用户单击特定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中的链接)时它也会触发。
谢谢!
答案 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)
答案 3 :(得分:2)
有很多方法。一种方式
$('a').click(
function(){
if($(this).closest('#content')){
return;
}
});
closest
检查是否存在具有id内容的父元素。