我想在文檔級別與如何找到一個錨標籤上點擊當前文檔中的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