我想在文档级别与如何找到一个锚标签上点击当前文档中的jQuery
$(document).click();
而上单击元素我想看看它是否是一个附加click事件锚标签。如果它是一个锚标签,那么我会调用一个方法来做一些事情。如何做到这一点?任何想法?
我想在文档级别与如何找到一个锚标签上点击当前文档中的jQuery
$(document).click();
而上单击元素我想看看它是否是一个附加click事件锚标签。如果它是一个锚标签,那么我会调用一个方法来做一些事情。如何做到这一点?任何想法?
你只需要检查事件对象的目标。
$(document).click(function(e) {
var targ;
if (!e) var e = window.event;
if (e.target) targ = e.target;
else if (e.srcElement) targ = e.srcElement;
if ($(targ).is('a')) {
// do your stuff
}
});
而且(用于获取来自quirksmode活动对象跨浏览器的代码),如果你要还有其他的事件处理程序附加到链接,请确保您使用event.preventDefault
而不是仅仅返回false
如果您想取消链接的默认操作(请参阅this question)。
工作正常...!谢谢.. :) – Amit 2010-05-11 05:22:06
<a href="#anchor">Anchor</a>
<a href="link">Anchor</a>
<script type="text/javascript">
$(document).click(function(event){
if(event.target.nodeName === 'A'){
alert('Anchor');
} else{
alert('Not an anchor');
}
});
</script>
不客气。 – Ben 2010-05-11 05:25:41
@kkyy:什么都不行,就是如果你正试图使在该锚的是点击事件的请求,在Safari(所有,窗户,iPhone等),例如在您的代码中:
if ($(targ).is('a')) {
var img = new Image(1,1);
img.onload = function(){};
img.src = "http://www.google.com/images/logos/somelogo.png?" + new Date().getTime();
}
如果您通过任何嗅探器观看流量,您将无法在Safari中看到上述请求。是的,非常跛脚!
请缩进代码4空格来格式化。 – 2010-09-14 19:25:15
为什么你想这样做,而不是'$(“a”)。click(function(){...});'? – 2010-09-14 19:27:07
@Peter:嘿好像在你的网页末尾查看我的评论......问题是网页上有100多个链接,用户只能点击一个链接。因此附加所有锚的点击事件似乎有点沉重..! – Amit 2010-09-15 06:39:53
谢谢。你能观察到两种方法在性能上的差异吗? – 2010-09-15 11:42:17